When you add a new column, details matter. Schema changes are simple in theory but can break production under heavy load. A new column can increase query time, affect indexes, and trigger unexpected defaults. The right approach keeps deployments smooth and rollback possible.
First, define the new column in your migration script with explicit type, constraints, and defaults. Avoid implicit null behavior unless it is planned. Always test on a staging database with real-scale data. Measure the impact with query plans before pushing live.
If the new column must be non-nullable, add it in two steps: create it as nullable, backfill data in batches, and then apply the constraint. This reduces write-lock contention and avoids downtime. For high-traffic tables, consider adding indexes after backfilling to prevent blocking.