The request came in: add a new column. No one argued. Everyone knew this tiny change could ripple through deployed systems, break queries, and stall releases.
A new column in a database table seems simple. Define the field, set its type, run the migration. But at scale, downtime and performance degradation lurk in the wrong sequence of commands. The safest approach starts with defining the schema change in a migration file. Always include default values when required by the application logic. Avoid locking the table on large datasets by using operations designed for online migrations.
Plan the rollout in phases. First, deploy the schema change without reading from or writing to the new column. Let it replicate across environments. Then update the application code to write to it. Only after reliable writes should you switch reads to the new column. This staged approach isolates issues and supports rollback.