Adding a new column seems simple. It can break production if done wrong. Schema changes touch every query, every API response, every data pipeline. The longer the downtime or mismatch lasts, the more damage it causes.
A new column should be explicit in intent. Define the name, type, nullability, default value, and purpose before writing a single line of migration code. Avoid ambiguous naming. Run local tests with realistic datasets to verify query performance does not degrade after the change.
Choose the right migration strategy. For large tables, use online schema changes to avoid locks. Backfill data in batches to reduce load. Test migrations in staging with production-like volume. If the column affects indexes, update them deliberately and analyze query plans before deploying.