Adding a new column sounds simple. Done wrong, it can break production. Done right, it is seamless and safe. In modern applications, schema changes happen often. Each new column must integrate with existing data, avoid performance hits, and work across environments without downtime.
First rule—never force a blocking migration on a live table with high traffic. Use database tools that support non-locking ALTER TABLE operations, or break the change into multiple steps: create the new column with a default or null, backfill data asynchronously, then update constraints and indexes.
Plan the migration. Know exactly which services read and write to that column. Make the change backward-compatible so older code still works while the new deployment rolls out. Test not just schema changes, but actual queries in staging against realistic datasets.