Adding a new column to a database table sounds simple. It is not. Schema changes, even small ones, can block writes, cause downtime, or silently misalign data. The right approach depends on your database engine, traffic patterns, and deployment practices.
In PostgreSQL and MySQL, adding a new column with a default value can lock the table. In production, that lock can pause the world. For large tables, this means minutes or hours of stalled queries. Instead, add the column without a default, backfill data in controlled batches, then add constraints after verification.
When working with distributed databases like CockroachDB or Yugabyte, a new column triggers a schema change job. These engines handle it online, but you still need to monitor for replication lag and index rebuild side effects. With MongoDB, adding a field requires no schema migration in the traditional sense, but application code changes must carefully handle documents missing the field.