Adding a new column should be simple. In practice, it can be a breaking change if you do it wrong. Databases serve traffic while you alter them, and every added field touches code, queries, and indexes. A careless schema change can lock tables, block writes, or force full-table scans.
First, define the new column with precision. Use the smallest effective data type. Declare nullability based on actual data requirements, not guesswork. Avoid adding columns with default values that require rewriting the entire table on creation. For large datasets, this can stall production traffic.
Second, deploy incrementally. Add the new column in one migration. Backfill data in a separate process, using batches to control load. Only after the backfill completes should you add constraints, indexes, or foreign keys. This reduces risk and keeps uptime.