Adding a new column to a database should be simple, fast, and reversible. Done right, it won't block other work or lock your tables. Done wrong, it will stall deploys, trigger downtime, and put data at risk.
To add a new column with zero disruption, start by defining the schema change in a migration file. Use an explicit type and constraint. Avoid nullable columns unless necessary. If the column will hold large text or blob data, consider whether it belongs in the same table or in a related table to keep queries fast.
For large datasets, online schema change tools can write the new column to a shadow table, sync changes in the background, and then swap them in. This avoids full-table locks. In PostgreSQL, ALTER TABLE ... ADD COLUMN is fast for small tables, but for production-scale workloads, plan for controlled rollouts. In MySQL, use pt-online-schema-change or MySQL's ALTER TABLE ... ALGORITHM=INPLACE to mitigate downtime.