The migration was almost complete when the need for a new column appeared. It was not optional. The schema had to change, and it had to change now.
Adding a new column to a production database is one of the most common schema changes. It is also one of the most dangerous if handled without care. The risk lies in locking large tables, triggering expensive rewrites, and causing downtime or degraded performance.
The safest way to add a new column depends on your database engine. In PostgreSQL, adding a nullable column with no default is fast because it only updates the catalog metadata. Adding a new column with a default value, however, rewrites the table and can be costly. In MySQL, behavior differs between versions and storage engines. Testing on production-sized data is mandatory before changing live databases.
Plan every schema change as you would a deployment. Check the query patterns that will touch the new column. Ensure your application code can handle nulls or provide backfill logic through background jobs before making it non-nullable.