Expand/Contract — The Only Schema Change Pattern You Need
Every zero-downtime schema change — rename a column, change a type, split a table, add a constraint — is the same move performed carefully: add the new shape alongside the old, migrate readers and writers in compatible steps, then remove the old shape long after anything needs it. Expand/contract (also traveling as "parallel change") is less a technique than the grammar all the techniques are written in. Learn it once and every migration becomes a sentence in it.
Expand/contract is the grammar of zero-downtime schema change: add alongside, migrate in compatible single-step deploys (write-both, read-new, write-new-only), contract late and deliberately. Plus the per-engine fine print: concurrent index builds, declare-then-validate constraints, and lock timeouts as the universal seatbelt.