Adding a new column changes the data and the code that touches it. Done well, it is seamless. Done poorly, it breaks production. The safest path starts with defining the column name, type, constraints, and default values in one place. Keep it explicit. Never depend on silent database defaults.
Plan migrations as code. Use version-controlled migration scripts. Test them against production-like datasets before deployment. Always consider how the new column will affect query performance, indexes, and foreign keys. If the table holds millions of rows, adding a column with a non-null default can lock the table. That can stall writes, read queries, or both.
Use online schema change tools when downtime is not acceptable. They create shadow copies and switch in the new column without blocking critical operations. For most systems, the sequence should be: