The migration was done, but the schema was wrong. You needed a new column, and you needed it now.
Adding a new column should be fast, safe, and repeatable. Yet too often it becomes a bottleneck. Production databases hold terabytes of data. A careless ALTER TABLE can lock tables, block queries, or even crash the service. The right approach depends on database type, table size, and traffic patterns.
In PostgreSQL, adding a nullable column without a default is usually instant. But adding a column with a default can rewrite the whole table. The fix is to add the column first as nullable, then update rows in batches, and finally set the default. In MySQL, large table changes require tools like gh-ost or pt-online-schema-change to avoid downtime. In SQLite, new columns are straightforward, but removing or restructuring columns can force a full table rebuild.