Produkt / kostenlos, für PostgreSQL

Postgres Migration Guard.

pg-migration-guard

Erkenne die Postgres-Migration, die deine Tabelle sperrt oder neu schreibt, direkt in der CI, bevor sie in Produktion geht. Ein statischer Prüfer mit 12 Regeln für die häufigsten Arten, auf die eine Schemaänderung eine laufende Datenbank lahmlegt. Kostenlos und MIT-lizenziert, als CLI oder als GitHub Action.

Die Migration
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;
Was es erkennt

Die Schemaänderungen, die eine laufende PostgreSQL-Datenbank am ehesten lahmlegen. Eine Migration ist gefährlich, sobald sie eine starke Sperre hält, während sie eine große Tabelle scannt oder neu schreibt: auf einer stark genutzten Produktivtabelle ist das ein Ausfall. Zu jedem Fund druckt es den Grund, eine offizielle Postgres-Quelle und die sichere Umschreibung.

Installation

Python 3.8+, keine Abhängigkeiten, mit dem Parser gebündelt für Linux, macOS und Windows.

pip install pg-migration-guard

Oder in der CI als GitHub Action ausführen. Funde erscheinen als Annotationen im Pull Request, und ein Blocker lässt den Build fehlschlagen.

- uses: technical-turtle/pg-migration-guard@v1
  with:
    path: db/migration
    fail-on: blocker
Voller Umfang

Postgres Migration Guard ist die kostenlose Version des Postgres Migration Safety Auditor. Der Auditor prüft 36 Regeln (nicht 12), jede mit offizieller Quelle, und ergänzt: