Adding a new column should be trivial. In SQL, it starts with ALTER TABLE and ends with a schema update. But real systems carry more weight—replication lag, locked writes, production traffic you can’t stall. The right approach depends on scale, database engine, and deployment model.
In PostgreSQL, adding a nullable new column without a default is fast. Adding one with a default rewrites the whole table unless you use a constant default combined with NULL and a backfill job. In MySQL, online DDL options reduce locking but must be triggered with the correct flags to avoid downtime. For distributed databases, the schema change process must coordinate across all nodes, or you risk mismatched versions and broken queries.
Schema migrations are not just about adding fields. They demand version control, peer review, automated execution, and rollbacks. You should handle new column creation in stages: