The schema is fixed. The migration runs clean. But now the product team needs a new column—fast.
Adding a new column is simple on paper: define it, update the database, and deploy. In reality, delays come from coordination, dependency chains, and risk. Every change touches real data. Every misstep can block release schedules. Speed matters, but safety matters more.
Start with an explicit name that matches purpose. Avoid acronyms, avoid guessing future use. Choose the right data type; don’t just default to string or text. If precision is needed, use DECIMAL. If state is binary, use BOOLEAN. Every wrong choice multiplies technical debt downstream.
When adding a new column, update migrations incrementally. Test locally against real data snapshots. Watch for nullability constraints—introducing a NOT NULL column without defaults can break deployments. For large tables, expect lock contention and plan for zero-downtime migrations: