Adding a new column in a production database is not just an extra field. It touches data integrity, query performance, and the safety of your deploy pipeline. Done wrong, it blocks your release or corrupts data. Done right, it is invisible to users and easy to roll back.
Start by making the change additive. Do not drop or rename anything in the same deployment. Create the new column with a default that does not rewrite the entire table. In PostgreSQL, use ADD COLUMN without default, then run a background job to backfill the data. Once complete, set the default in a subsequent migration. This prevents locks and downtime on large tables.
For MySQL, check the storage engine and version. Modern releases with ALGORITHM=INPLACE can add columns faster, but large tables still risk locks. Test on a clone before touching production. Always wrap schema changes in transactional migrations when supported.