Adding a new column is simple in syntax, but it can break production if done without care. Schema changes lock rows, trigger code paths, and shift query plans. In high-traffic systems, a single ALTER TABLE can block writes for seconds or minutes. That’s enough to cascade into failures.
The safest way to add a new column is in small, controlled steps. First, deploy code that tolerates both the presence and absence of the column. Then alter the schema in a separate, low-traffic window. Always monitor latency, locks, and replication lag during the migration. If your database supports it, use features like ADD COLUMN ... DEFAULT NULL without a full table rewrite.
When the column must be initialized with values, backfill in batches to avoid load spikes. A batch size that looks too small is usually correct. Test each step in staging with production-like data. Verify that queries still use the right indexes once the new column exists.