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.
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; 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.
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 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: