The migration was done, but the schema was wrong. The missing piece was a new column.
Adding a new column in a production database is simple to describe but dangerous to execute. The wrong step can lock tables, block queries, or trigger outages. The right step can roll out in seconds without anyone noticing.
Start with clarity on the change. Define the column name, type, default value, and nullability before you touch the schema. Every decision here affects indexes, performance, and storage. Avoid implicit defaults unless you control how each client writes to the field.
For relational databases like PostgreSQL or MySQL, the fastest path to add a new column is an ALTER TABLE statement. If the column allows nulls and has no default, the command is often instant, even on large tables. If you need a default value on every row, use a multi-step approach: create the column without the default, backfill in batches, then set the default. This reduces locking and load spikes.