Product / gratis, voor PostgreSQL

Postgres Migration Guard.

pg-migration-guard

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.

De migratie
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;
Wat het onderschept

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.

Installeren

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
Volledige dekking

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: