The database waits, but it will not wait forever. You have a schema in production, a feature to ship, and the change is simple: add a new column. Simple is a false friend. Done wrong, it can lock tables, throttle queries, or break downstream services.
A new column in SQL is more than an ALTER statement. It’s a contract change. Every dependent service, transformation, and cache will see it. Choose your column type carefully. Define nullability with precision. Never default blindly. If large writes are involved, test in staging with production-scale data.
Relational databases handle new columns differently. In PostgreSQL, adding a new nullable column is fast. Adding a column with a default value rewrites the table — which can hurt. MySQL versions before 8.0 might block queries during the change unless you use ALGORITHM=INPLACE. Cloud-managed databases sometimes shield you from these details, but never assume.
For large tables, break the change into safe steps. Add the column as nullable. Backfill data in controlled batches. Add constraints and defaults after the data is in place. Monitor replication lag and query performance between steps.