The schema needs a new column—and not tomorrow, not after a sprint, but now. The change has to ship without breaking existing queries, without wrecking performance, and without blocking deploys.
Adding a new column sounds simple. It isn’t. Done wrong, it locks rows, slows writes, and creates downtime that hits every user. Databases don’t care about your deadlines. They care about safe migrations. The method you choose determines if production survives the change.
First, define the column in a way that doesn’t block. In PostgreSQL, adding a nullable column without a default is fast. Adding one with a default rewrites the whole table. In MySQL, online DDL operations can help, but you must check the engine, version, and table size.
Second, update application code to handle the new column before you backfill it. This makes the migration safe. The code should tolerate nulls until the data is ready. This prevents race conditions, rolling errors, and failed deploys.