Adding a new column to a database should be simple. In practice, it can break production, stall deployments, and consume hours of engineering time. Schema changes create risk. Downtime, locks, and inconsistent data are common. When the system is live and queries never stop, you need a process that works without guesswork.
A new column changes the shape of your data. Every index, foreign key, trigger, and constraint might be impacted. You must confirm the column’s type, default value, and nullability. You have to consider how it behaves in read-heavy and write-heavy workloads. Rolling out changes in a single transaction is dangerous on large datasets. An online schema change or phased rollout reduces the risk.
In SQL databases like PostgreSQL or MySQL, adding a column with a default value can rewrite the entire table. This blocks writes and can cause latency spikes under load. The safer pattern is to add the column without a default, backfill it in batches, then set the default once the table is updated.