The database was ready, but the data model wasn’t. A new column had to exist before the next deploy window. No delays, no downtime.
Adding a new column in modern systems is simple in theory, hard in practice. Schema changes ripple through APIs, services, and tests. Each break in the chain creates risk. To manage this, you need a migration strategy that is fast, reversible, and visible to every dependent service.
The first step is to stage your change. Create the new column in the database without dropping or modifying existing ones. Use ALTER TABLE for relational systems or an equivalent operation for your data store. Keep the change lightweight to avoid locking large tables for long periods.
Second, update your code to write to both the old and the new column. This dual-write phase ensures no loss of state. Backfill the column with existing data using a background job or incremental migration script. Monitor for row count parity and data integrity.