Adding a new column sounds simple. It rarely is. Every database change is a contract update between your application and its data. Miss a step and you break builds, crash APIs, corrupt rows, or lock tables. The margin for error is thin.
Start with clarity: define the column name, data type, default value, and nullability. Avoid vague names. Plan for future queries—indexes, constraints, and relationships should be set now, not patched later.
In transactional databases, a new column can trigger full table rewrites if not handled carefully. For large datasets, that means downtime unless you deploy with an online migration strategy. Techniques like ADD COLUMN NULL first, then backfill in small batches, can reduce lock contention.
In distributed databases, schema changes propagate across nodes. Each replica needs the update, and consistency models can delay visibility. Test on staging that mirrors production scale.