Adding a new column in a production database sounds simple. It isn’t. Before you run ALTER TABLE, you have to think about read and write patterns, lock duration, and how your migrations interact with live traffic. Even a small change can trigger downtime, block queries, or cause silent data issues.
A safe migration plan starts with checking your database engine’s capabilities. Some support adding columns without a full table rebuild; others don’t. If defaults are involved, be sure they don’t require rewriting the entire table. Use NULL for new columns during the rollout, then backfill data in batches to avoid performance hits.
Version your application to handle both old and new schemas. Deploy the code that writes to the new column, but make it tolerant of null or missing values. Only when all services can read from it should you set constraints or indexes. For large datasets, online schema change tools can apply the addition without heavy locking.