Adding a new column sounds simple. In production, it can take down a system if done without care. Schema changes can lock rows, block writes, and cause long migrations that burn through maintenance windows. The bigger the table, the bigger the risk.
The first step is to define the column in a migration script. Choose the correct data type and constraints. Avoid default values that force a full table rewrite. Use NULL when possible to keep the migration fast. If a default is required, backfill in small batches after the column exists.
For high-traffic systems, run the migration in phases. Add the new column first. Write to it in parallel with the old data path. Deploy code that reads from both sources until the backfill is confirmed. Only then, switch the read path to the new column. This approach prevents downtime and data loss.