Databases Databases

SQLite

alpha
Alpha — free CLI, --engine=sqlite

Alpha — the SL corpus runs locally behind --engine=sqlite: the ADD COLUMN forms SQLite refuses, the rewrite DROP COLUMN performs, the twelve-step table rebuild and its pragmas, unbounded writes, VACUUM and REINDEX, index builds under the single write lock, and the rowid traps.

SQLite has almost the opposite danger model from Postgres. ALTER TABLE supports very little, so most schema changes are the documented twelve-step dance: create the new table, copy, drop, rename. The traps are the ADD COLUMN forms SQLite rejects outright (NOT NULL without a default, PRIMARY KEY or UNIQUE, a non-constant default, a STORED generated column), forgetting to switch foreign keys off before the rebuild — or switching them off inside the transaction, where the pragma is silently ignored — and holding the single write lock for the length of a DROP COLUMN rewrite, a VACUUM or an index build.

The corpus is in alpha: static rules only, no live-schema context, and it is still growing. Every rule ships fixture migrations in both directions, and every "SQLite refuses this" claim is re-proven against a real SQLite in the test suite. It runs in the public CLI with --engine=sqlite and nowhere else yet — the hosted service, the Action and team policy do not run it, and a clean result means no rule fired, not that the migration is safe.

npx bolvrk check migrations/*.sql --engine=sqlite
Want this moved up the roadmap?

The roadmap bends toward what connected teams actually need — tell us.

Also in Databases