The migration was done. The schema was clean. But there it was—another request for a new column.
Adding a new column sounds simple. It rarely is in production systems. Schema changes can block writes, lock tables, break queries, or cascade failure across dependent services. The risk grows with database size, uptime requirements, and transaction volume. To manage it, you need both precision and speed.
First, define the new column with exact data types and constraints. Defaults matter. Avoid NULL unless you’ve mapped the impact on legacy reads and writes. For large datasets, use an online schema change tool or database-native online DDL. This keeps the table available without holding long locks.
When naming the new column, stay consistent with naming conventions. This supports better indexing, discoverability, and code generation. Don’t overload a column with multiple responsibilities. Every new column should have a single purpose, clearly documented.