Intercetta la migrazione Postgres che blocca o riscrive la tua tabella, direttamente in CI, prima che arrivi in produzione. Un controllo statico con 12 regole per i modi più comuni in cui una modifica di schema mette a terra un database attivo. Gratis e con licenza MIT, da eseguire come CLI o come 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; Le modifiche di schema che più facilmente mettono a terra un database PostgreSQL attivo. Una migrazione è pericolosa quando tiene un lock forte mentre scansiona o riscrive una tabella grande: su una tabella di produzione molto usata significa un disservizio. Per ogni rilevamento stampa il motivo, una fonte ufficiale Postgres e la riscrittura sicura.
Python 3.8+, nessuna dipendenza, con il parser incluso per Linux, macOS e Windows.
pip install pg-migration-guard Oppure eseguilo in CI come GitHub Action. I rilevamenti compaiono come annotazioni nella pull request, e un blocker fa fallire la build.
- uses: technical-turtle/pg-migration-guard@v1
with:
path: db/migration
fail-on: blocker Postgres Migration Guard è la versione gratuita del Postgres Migration Safety Auditor. L'auditor controlla 36 regole (non 12), ognuna con una fonte ufficiale, e aggiunge: