Adding a new column sounds simple, but mistakes here can lock tables, stall writes, or corrupt data. When production is live, schema changes must be precise, predictable, and reversible.
First, know your database. In PostgreSQL, ALTER TABLE ADD COLUMN is straightforward, but adding a column with a default on large tables rewrites the whole table. On MySQL, ALTER TABLE blocks writes unless you use ALGORITHM=INPLACE or INSTANT where possible. In distributed databases, schema changes may propagate asynchronously, creating temporary mismatches between services and replicas.
Plan each new column for type, nullability, default value, and indexing. Use nullable columns with no default to avoid large table rewrites. Backfill data in small batches. In systems that must stay online, create the column first, then update rows in a controlled process before applying constraints.