Adding a new column should not mean late nights and risky deploys. Yet in many environments, altering a table is slow, dangerous, and tied to downtime. This is especially true when the dataset is large or when the database must remain online 24/7. Schema changes can lock tables, block queries, or force queues to pile up.
A new column is more than an extra field. It changes queries, APIs, indexes, and sometimes cache logic. In most systems, you must choose between blocking writes during the migration or running a background process to copy data forward. Both have tradeoffs. The key is to add the column without breaking existing reads and writes.
For relational databases like PostgreSQL or MySQL, the fastest path is to add the new column with defaults set to NULL. This avoids rewriting the entire table immediately. You can then backfill data in small batches, keeping latency predictable. Once the backfill is complete and verified, you can mark the column as NOT NULL if needed and update dependent services.