A new column changed the shape of the data. One moment the schema was fixed, the next it demanded more. The migration could not wait.
Adding a new column in a database is simple in syntax but heavy in consequence. The command is only part of the work. The rest is ensuring zero downtime, protecting data integrity, and aligning production, staging, and development environments. Done poorly, it can lock tables, block writes, or break code paths you did not expect.
Plan every new column with the same rigor as a major feature. Choose the data type with intent. Decide if it can be NULL or if it needs a default. Think about indexing early; adding an index later on a populated table can be expensive and slow. For high-traffic services, use online migrations when possible. In MySQL and Postgres, tools like pt-online-schema-change or native ALTER TABLE ... ADD COLUMN with CONCURRENTLY can keep services running.