pgpm projections

One Schema, Every Shape

Turn any Postgres schema, from a pg_dump, a .sql file, a pgpm module or a live database, into the shape you need: a module, one SQL script, a migration or a bundle.

AST In, AST Out

Parsed with the real Postgres parser; no regex rewriting

Semantic Diff

Diff modules, dumps and live databases into ALTERs

Proven Equivalent

Every projection deploys to the identical catalog

pgpm projections Features

Import, reshape, diff and ship Postgres schemas

Import Any Dump

pgpm import turns a raw pg_dump or .sql file into a pgpm module with deploy, revert and verify per object.

Any Granularity

Reshape a module from one statement per change to the whole schema as one change, without changing what it deploys.

Semantic Diff

Compare tables column by column and constraint by constraint, so a change emits ALTER TABLE, not a rebuild.

Split Into Packages

Partition one module into several, such as app and security, with the requires between them generated.

Content-Addressed Bundles

Emit a bundle that powers pgpm deploy --fast: one-shot SQL plus a bulk migration ledger.

Portable Across Platforms

pgpm materialize re-targets a Supabase-shaped package to plain Postgres and back.

From pg_dump to a Module

Import a dump into a pgpm module, then reshape it to any granularity.

Generate the Migration

Diff two versions and emit the delta as a pgpm migration module and as one SQL file, verified against a scratch database.