Prodotto / gratis, per PostgreSQL

Postgres Migration Guard.

pg-migration-guard

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.

La migrazione
CREATE INDEX idx_orders_customer ON orders (customer_id);
ALTER TABLE users ALTER COLUMN email SET NOT NULL;
pg-migration-guard
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;
Cosa intercetta

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.

Installazione

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
Copertura completa

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: