A new column sounds simple. In practice, it changes how the application reads, writes, and scales. Done wrong, it locks tables, slows queries, and burns deploy windows. Done right, it ships without downtime and opens headroom for new features.
Start by defining the new column with the smallest possible footprint. Choose the correct data type. Avoid defaults that force a full-table rewrite. Use NULL where possible to skip costly backfills.
Plan a phased rollout. Add the new column in one migration. Update the code to write to both old and new fields. Backfill data in small batches, outside peak load. Switch reads to the new column only after it’s fully populated and verified.