A new column is more than a database schema change. It is a contract update between your data and your application. Done right, it extends capability without breaking what already works. Done wrong, it stalls deployments, corrupts data, and burns nights in rollback purgatory.
When adding a new column, define its purpose first. Decide if it will store computed values, user input, or relational keys. Choose the data type with precision. Defaults and nullability must be clear before you write the migration. Avoid introducing silent nulls unless they are intentional and safe.
Migrations should be atomic and reversible. Include the new column in a version-controlled migration file. Test it against a replica that mirrors production scale. Validate that indexes will not cause lock times large enough to block traffic. For large datasets, consider phased rollouts or backfilling data in batches.