Catch the database migration that locks or rewrites your production table, before it ships. A static auditor for Flyway and Liquibase that flags each production hazard with the exact reason and the safe rewrite, run as a CLI, a CI gate, or a Claude Code skill. It never connects to your database.
Most migration reviews are a generalist reading a diff. That misses the specific ways a PostgreSQL migration takes your site down. The auditor checks 33 rules, parses your actual migration with the real PostgreSQL parser (not regex), and flags each hazard with an official citation:
ALTERs (ACCESS EXCLUSIVE and friends)SET NOT NULL full-table scans, and when a validated CHECK lets you skip them on PG12+NOT VALID then VALIDATEThe ten schema changes most likely to take a live PostgreSQL database down, and the safe rewrite for each. A migration is dangerous when it holds a strong lock (ACCESS EXCLUSIVE blocks reads and writes; SHARE blocks writes) while it scans or rewrites a big table. On a small table you never notice; on a hot production table it is an outage. Flyway and Liquibase wrap each migration in a transaction by default, which matters for several of these.
CREATE INDEX CONCURRENTLY ... outside a transaction.ADD CONSTRAINT c CHECK (col IS NOT NULL) NOT VALID, then VALIDATE CONSTRAINT c, then SET NOT NULL (scan skipped on PG12+).NOT VALID, then VALIDATE.NOT VALID, then VALIDATE.SET DEFAULT.CREATE UNIQUE INDEX CONCURRENTLY, then ADD CONSTRAINT ... USING INDEX.SET lock_timeout = '2s'; before risky DDL, and retry on timeout.Gotcha: CREATE INDEX CONCURRENTLY cannot run inside a transaction, which is how Flyway and Liquibase wrap migrations by default, so a bare concurrent-index migration errors out. Disable the wrapping transaction for that one migration. The auditor catches this too, and 22 more rules beyond these ten.
The Claude Code skill and the CLI, built on libpg_query (the parser PostgreSQL itself uses), with all 5 platform binaries bundled. Python 3 only, nothing to pip install. Linux, macOS, Windows.
Machine-readable JSON against a documented schema, exit codes keyed to severity so it drops into a pipeline, and a config file for your Postgres version and large-table threshold.
Every rule points at an official Postgres, Flyway, or Liquibase source. Ships with a 202-case worked-example regression suite you can run yourself.
By design, pure static analysis: it reads the migration text and never connects to your database, so it needs no credentials and runs identically in CI or on your laptop, with nothing leaving your machine. It reasons from the Postgres version and row counts you give it (or auto-filled via the optional local read-only introspection), and catches the common, high-impact hazards a diff review misses.
One-time purchase, €14.99. Sold through Polar (merchant of record, VAT handled). Instant download, all platforms.