The database was alive, but it was missing something. A new column.
Adding a new column sounds small. It can shatter uptime if you do it wrong. The schema is a contract. Every table change ripples through code, queries, caches, and APIs. If you push without a plan, the blast radius widens fast.
A safe migration starts with knowing the exact schema state in every environment. In production, run ALTER TABLE only when you have measured the cost. On massive tables, use online schema change tools. For zero-downtime, add the new column as nullable, backfill in batches, then enforce constraints.
Think through code deployment order. Feature flags let you ship code that can handle both states. Write queries that are compatible before and after the new column exists. Keep your changes backward-compatible for one full deploy cycle.