Adding a new column should be simple. In practice, it can break production if you miss the edge cases. A new column changes the schema. It changes the shape of the data your application reads and writes. If you get it wrong, you get downtime, data loss, or corrupted rows.
The safest process starts with the database. Create the new column in a backward-compatible way. Avoid NOT NULL with no default on large tables—this locks writes. Add the column as nullable, deploy, and backfill data in small batches. Once complete, enforce constraints.
After the schema change, update your application code. Read from the new column, but keep the old fields running until all services, workers, and scripts use the new path. In distributed environments, mismatched schema assumptions cause hidden failures. Deploy in phases to avoid breaking dependent systems.