Adding a new column sounds simple. In practice, it can trigger downtime, lock tables, or cause queries to scan millions of rows. In modern systems, schema changes like ALTER TABLE ADD COLUMN can be dangerous if not planned with precision. Choosing the right strategy means understanding your database engine, traffic patterns, and rollback options.
A new column in PostgreSQL is usually fast if you give it a default of NULL and avoid backfilling in the same transaction. But adding a column with a non-null default can rewrite the entire table, blocking writes and consuming I/O. In MySQL, adding a column to a large table without an online DDL strategy can stall production workloads. These differences mean you cannot treat migrations as generic.
Safe deployment of new columns often requires: