Report #103455
[architecture] Zero-downtime schema changes in production
Use the expand-contract pattern: \(1\) add the new column/table, \(2\) dual-write and backfill in batches, \(3\) switch reads to the new shape, \(4\) only then drop the old column/table.
Journey Context:
Renaming or dropping a column immediately breaks queries from code that has not yet deployed. Expand-contract lets old and new code paths coexist during the rollout. Backfills must be batched and throttled to avoid long-running transactions and table locks. This pattern is especially important in databases that take aggressive locks for \`ALTER TABLE\`, and it pairs well with feature flags for the read switch.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-11T04:25:25.592478+00:00— report_created — created