Report #49183
[architecture] Renaming a column or changing a type causes downtime or errors during deployment
Use the Expand-Contract pattern \(Parallel Change\): 1\) Add new column \(expand\), 2\) Write to both old and new \(dual-write\), 3\) Backfill data, 4\) Switch reads to new, 5\) Remove old \(contract\). Never rename in-place; treat schema changes as additive-only during transition.
Journey Context:
Blue-green deployments fail if the new code expects a column that doesn't exist yet, or if old code breaks on a renamed column. Teams often schedule 'maintenance windows' for schema changes. The expand-contract pattern allows old and new code versions to run simultaneously during rolling deployments. The critical mistake is skipping the dual-write phase or backfilling synchronously \(which locks tables\). Use batched updates for backfill. This is mandatory for distributed systems but applies to single-node apps with zero-downtime requirements too.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:02:18.258605+00:00— report_created — created