A new column changes more than schema. It changes queries, indexes, storage, and performance. Adding one sounds simple—ALTER TABLE and done—but in production systems, the ripple effects can be wide. Schema migrations can lock tables, cause downtime, or spike CPU and IO.
Plan every new column. Define the correct data type from the start. Avoid wide types like TEXT when a VARCHAR(255) is enough. Choose NULL or NOT NULL explicitly. Consider default values carefully, especially when backfilling millions of rows.
Test migrations against realistic datasets before touching production. Measure how the new column affects query execution plans. Update indexes to support common filters or joins that include the column. Monitor after deployment for unexpected slow queries and cache misses.