The query finally returns, but the new column is missing.
You check the schema. No change. You refresh the migration logs. Empty. The problem isn’t SQL syntax—it’s process discipline. Adding a new column is trivial; adding it without breaking production is where most teams fail.
A new column alters the contract between your database and every service that consumes it. The schema update must be exact. Type, default values, nullability, indexing—each decision can cascade into performance hits or outages.
Plan the change in three steps: design, deploy, verify. In design, confirm the column’s role, constraints, and how existing rows will populate it. Run migrations in staging with production-like data volumes. Measure execution time and lock contention.