A CLI that moves a live Postgres table to a new schema without a maintenance window.
Adding a NOT NULL column to a 1.2 million row table locked writes for four minutes on the primary. The team’s answer was a Sunday 2am maintenance window, roughly monthly.
The existing zero-downtime tools were written for MySQL, or assumed you could install an extension the managed database would not let you install.
Warp creates a shadow table with the target schema, backfills it in bounded batches that yield between chunks, and keeps it current with triggers on the source.
Cutover is a single transaction that renames both tables, and it refuses to run while replication lag is above a threshold you set. If anything is wrong it does nothing, loudly.
Every run starts with a dry run that prints the exact statements. No migration tool earns trust by being clever about what it is about to do.
The Sunday windows stopped. Migrations now run on a Tuesday afternoon while the site takes traffic, with peak write latency up six milliseconds during the backfill.
Around 900 stars and a steady trickle of issues from people running it against managed Postgres, which is exactly who it was for.
4 min → 0
Write lock during migration
+6ms while backfilling
Peak latency cost
12/yr → 0
Maintenance windows