Adding a new column sounds simple. In practice, it can be slow, dangerous, and expensive if you get it wrong. The schema defines how your data lives, and every change carries risk. With large tables, migrations can lock writes, block reads, or trigger hours of downtime.
The right approach depends on scale, database engine, and tolerance for risk. In PostgreSQL, ALTER TABLE ADD COLUMN is fast for empty columns with defaults set to NULL, but adding a column with a non-null default value rewrites the entire table. In MySQL, a new column can cause a full table copy unless you use ALGORITHM=INPLACE or run the migration through a tool like pt-online-schema-change. On distributed databases, adding a column often requires a rolling schema upgrade staged across all nodes.
A safe migration strategy starts with understanding the storage engine. Avoid blocking DDL if your database supports online schema changes. Break large operations into smaller, reversible steps. Add the new column with NULL and populate it in batches. Backfill during off-peak hours. Only enforce constraints after data is in place.