The database was breaking under the weight of a missing field. You knew the data model had to evolve, and fast. The only path forward was clear: add a new column.
A new column is more than a table update. It is a contract change, a shift in schema that will ripple through queries, indexes, and application code. In SQL, adding one is straightforward:
ALTER TABLE orders ADD COLUMN delivery_eta TIMESTAMP;
On the surface, it looks like one line. In production, it is a migration with consequences. A new column affects read and write performance, storage patterns, and API responses. It changes how applications serialize and deserialize objects. It can invalidate caches. It can demand backfilling millions of rows.
Plan the migration. Decide whether the new column allows nulls, has a default value, or needs constraints. Adding a column with a non-null default will rewrite the entire table on some engines, locking writes and blocking reads. Test it in a staging environment with production-like scale.