A new column is more than a schema change. It shapes data flow, alters queries, and affects every system that touches the table. Done right, it improves performance and unlocks features. Done wrong, it breaks code, introduces latency, and corrupts reports.
Before adding a new column, audit the schema. Identify dependent queries, indexes, and constraints. Check application code for SELECT * statements. Review migrations for idempotency. In production systems, every column addition is a contract: type, nullability, default value, and indexing strategy must be explicit.
Use ALTER TABLE with care. For large datasets, adding a new column with a default value can lock or block writes. Consider adding the column without defaults, backfilling in batches, then adding NOT NULL constraints. Plan rollbacks. Test migrations against realistic data volumes.