The schema was frozen. The business team wanted changes. A new column had to land in production before the next deploy window closed.
Adding a new column sounds simple. It can break everything if you get it wrong. The schema defines your truth. Once the application writes and reads from it, the contract is set. Plan the change like a migration, not a quick patch.
First, define the exact type and constraints. Use a name that explains its role without ambiguity. Avoid overloaded terms. Pick defaults with care—nulls can hide bugs, while static defaults can mask missing logic.
Second, make the database change backward compatible. Ship it in phases. Add the new column alongside the old structure. Load it with existing data if needed. Ensure queries and indexes support it before routing production traffic through it.