Expand
Add the compatible surface while old code is still live.
onwardpg generates the compatibility window around your application deployment—then proves the edited plan on disposable PostgreSQL.
brew install jokull/tap/onwardpg
One deployment. Two database phases.
Most diff tools answer what SQL makes two schemas equal. onwardpg also asks what old and new application code encounter along the way.
The migration journey
Add the compatible surface while old code is still live.
Ship one application version that understands both shapes.
Wait for old instances, workers, queues, and writes to finish.
Remove compatibility objects and converge on the desired schema.
$ onwardpg plan add-booking-status
✓ compared accepted history → desired DDL
✓ projected PostgreSQL dependency graph
◆ decision required: application contract
EXPAND
ALTER TABLE "app"."bookings"
ADD COLUMN "status" text;
—— deploy application, then drain old traffic ——
CONTRACT
ALTER TABLE "app"."bookings"
ALTER COLUMN "status" SET NOT NULL;
✓ disposable replay convergedReview the actual artifact
The bundle receipts every hint, edit, hazard, assertion, and PostgreSQL major. Product-specific work stays editable; stale answers fail.
Why onwardpg
Catalog-native
Materialize authoritative DDL, inspect typed catalogs, and order work from real dependency edges.
Application-aware
Renames, casts, backfills, policies, and required columns carry the decisions that catalogs cannot make.
Proof-oriented
Every edited bundle runs in restricted disposable PostgreSQL and must finish with no residual diff.
Bring your own schema source
Export complete PostgreSQL DDL from the tool you already use. onwardpg takes it from there.
Ready for the next change?