Revision history for DBIO-SQLite
0.900001 2026-07-12
* Fixes
- Fix DROP INDEX / DROP TABLE collision in full-schema sync (karr
#14). When diff reconciled a live schema containing a table absent
from the target (removed from the app's DBIO classes, or an
unmanaged leftover), it emitted both DROP TABLE <t> and a later
standalone DROP INDEX for one of that table's indexes; since
SQLite's DROP TABLE already removes the table's own indexes, the
standalone DROP INDEX died with "no such index" and aborted
apply()/upgrade(). DBIO::SQLite::Diff::Index now receives the tables
sections (threaded in by DBIO::SQLite::Diff) and suppresses a
standalone DROP INDEX for any index whose owning table is itself
being dropped in the same pass. Indexes of surviving tables are
still dropped as before; the two-argument diff() call stays
backward compatible (absent table sections => nothing suppressed)
- t/01-access-broker-api.t referenced the never-released
DBIO::AccessBroker::Credentials, which broke the test suite on
fresh installs (the module only existed as a local dev leftover);
switched to the released DBIO::AccessBroker::Static
(Codeberg #1, reported by eserte)
- t/populate_more.t: updated the load_components path after core
renamed DBIO::Schema::PopulateMore to DBIO::PopulateMore
- Removed the now-stale TODO markers from the two order_by
hashref-condition cases in the SQLMaker suite: core's
parameterization fix (bdd38a2ce) already made them pass,
they were just surfacing as "TODO passed" noise
* Dependencies
- Requires core DBIO >= 0.900001 (family-wide version alignment)
* Project
- Added SECURITY.md (CPAN Security Group guidelines v1.5.0)
0.900000 2026-06-23
First release. SQLite driver for DBIO with native deploy, introspect,
diff and DDL generation -- no SQL::Translator.
* Storage
- DBIO::SQLite::Storage, autodetected for dbi:SQLite: DSNs via the
driver registry; force-on multicolumn IN where supported
- Savepoints, deferred foreign-key checks, and the
foreign_keys PRAGMA via connect_call_use_foreign_keys
- Native database backup; DateTime::Format::SQLite for inflation
- DBIO::SQLite::SQLMaker (no SELECT ... FOR UPDATE on SQLite)
* Deploy / DDL / Introspect / Diff
- DBIO::SQLite::Deploy: install/diff/apply/upgrade via
test-deploy-and-compare against an in-memory :memory: target
- DBIO::SQLite::DDL: generate DDL from Result classes, with
INTEGER PRIMARY KEY AUTOINCREMENT inline and CREATE VIEW output
- DBIO::SQLite::Introspect: read schema via sqlite_master and
PRAGMA (tables, columns, indexes, foreign keys)
- DBIO::SQLite::Diff: table/column/index diffing with columns
inlined on CREATE TABLE and drop-then-create on index changes
* Result / shortcuts
- DBIO::SQLite::Result component with sqlite_index declaration
- use DBIO Schema => -sqlite shortcut to pin the SQLite storage
* Misc
- AccessBroker support for SQLite connections
- Requires Perl 5.36+ and DBD::SQLite