The data is incomplete, the reports are failing, and the issue points to the schema. You need a new column. Not next quarter. Now.
Adding a new column in a database should be fast, safe, and reproducible. Done right, it unlocks new features, fixes broken queries, and prevents silent data loss. Done wrong, it leads to downtime, migration hell, and inconsistent states.
First, decide if the new column is permanent or experimental. Commit to its type, constraints, and default values. In Postgres, a simple example:
ALTER TABLE orders
ADD COLUMN delivery_eta TIMESTAMP WITH TIME ZONE DEFAULT NOW();
This runs instantly if the default is constant. Avoid expressions that rewrite every row at once. For large datasets, add the column nullable, then backfill in batches. Lockless migrations matter at scale.