Onderschep de Postgres-migratie die je tabel op slot zet of herschrijft, direct in CI, voordat die in productie komt. Een statische checker met 12 regels voor de veelvoorkomende manieren waarop een schemawijziging een draaiende database plat legt. Gratis en MIT-gelicentieerd, te draaien als CLI of als GitHub Action.
CREATE INDEX idx_orders_customer ON orders (customer_id);
ALTER TABLE users ALTER COLUMN email SET NOT NULL; WARN IDX01 CREATE INDEX without CONCURRENTLY
Safe: CREATE INDEX CONCURRENTLY idx ON tbl (col); -- outside a transaction
WARN NN01 SET NOT NULL scans the whole table under ACCESS EXCLUSIVE
Safe: ADD CONSTRAINT c CHECK (col IS NOT NULL) NOT VALID; VALIDATE CONSTRAINT c; then SET NOT NULL; De schemawijzigingen die een draaiende PostgreSQL-database het vaakst plat leggen. Een migratie is gevaarlijk zodra hij een zware lock vasthoudt terwijl hij een grote tabel scant of herschrijft: op een drukke productietabel is dat een storing. Bij elke bevinding print hij de reden, een officiƫle Postgres-bron en de veilige herschrijving.
Python 3.8+, geen dependencies, met de parser meegeleverd voor Linux, macOS en Windows.
pip install pg-migration-guard Of draai hem in CI als GitHub Action. Bevindingen verschijnen als annotaties in de pull request, en een blocker laat de build falen.
- uses: technical-turtle/pg-migration-guard@v1
with:
path: db/migration
fail-on: blocker Postgres Migration Guard is de gratis versie van de Postgres Migration Safety Auditor. De auditor controleert 36 regels (niet 12), elk met een officiƫle bron, en voegt daaraan toe: