Adding a new column should be simple. In practice, it can break queries, crush performance, and stall deploys. The wrong DDL in production can lock tables and block writes. The longer the migration, the higher the risk.
A safe new column workflow starts with understanding the schema impact. Use database-specific features like ADD COLUMN with default values deferred, when possible. Avoid setting NOT NULL constraints on creation; populate the column in batches before enforcing them. For large tables, run backfills in small chunks to keep load low.
Plan for index changes before you create the column. Adding an index later can be as expensive as adding the column itself. If the column will be part of frequent lookups or joins, predefine the index but defer creation until after the backfill is complete.