Adding a new column should be fast, safe, and irreversible only when you say so. In modern databases, a schema change like adding a column can be trivial or dangerous depending on volume, locks, and traffic. The wrong migration can freeze writes. The right one slides into production without a ripple.
Use explicit ALTER TABLE commands during off-peak hours when possible. For PostgreSQL, ALTER TABLE table_name ADD COLUMN column_name data_type; is usually instant for nullable columns without defaults. For MySQL, the execution cost depends on the storage engine and table size. Always benchmark in staging with realistic data volume before pushing to prod.
If you must backfill data in the new column, batch updates to avoid load spikes. Aim for idempotent migration scripts that can be re-run without harm. Version-control every schema change. Tag releases where the new column becomes mandatory in code. With distributed systems, coordinate deployments so that reads and writes can handle both old and new schemas during rollout.