The migration broke last night. The logs showed everything except the one thing you needed: the new column was missing.
Adding a new column sounds simple. In practice, it can break production if done without a plan. Schema changes are the sharp edge of database work. They alter the shape of data. They can lock tables. They can block writes. They can kill uptime.
The safest way to add a new column is to treat it as both a code change and an operational event. First, review the schema versioning strategy. Use migrations that are idempotent and reversible. Name the new column precisely. Do not overload its meaning. Avoid NULL traps—assign a default whenever possible.
When adding a new column in PostgreSQL or MySQL, consider impact on indexes. Adding an indexed column during peak load will hurt throughput. In distributed systems like CockroachDB or Vitess, replication lag can magnify this risk. For high-volume OLTP workloads, run schema changes in shadow tables, then copy data after the fact.