The request was clear: add a new column without breaking production.
A new column can seem small. It isn’t. Schema changes touch every layer: database, application logic, APIs, and downstream consumers. A poorly planned column migration can slow queries, lock tables, or corrupt data. The right process makes it invisible to the user and safe for the system.
First, define the column. Name should be explicit, type must match the data, and default values should be decided before the migration. If nullable, consider how null entries will affect joins and filters. If non-nullable, plan for backfilling existing rows in a controlled way.
Second, choose the right migration strategy. In systems with high uptime requirements, use additive migrations. Add the column with defaults, backfill in batches, deploy code that reads the column, then finally write to it. Avoid schema locks during peak load by using tools or database features designed for online DDL.