Adding a new column sounds trivial. It is not. Schema changes in production can cause locks, block writes, or corrupt data if executed poorly. The safest path depends on scale, database engine, and migration tooling.
In PostgreSQL, adding a new column with a default value can rewrite the entire table, locking large datasets. Use ADD COLUMN without a default first, then UPDATE in small batches, and finally set a default at the schema level if needed. In MySQL, ALTER TABLE can block writes unless you use ALGORITHM=INPLACE or tools like pt-online-schema-change to run a rolling migration.
For distributed databases, you face schema propagation delays. Ensure read and write paths are backward compatible: deploy code that can handle both old and new schemas before applying the change, then finalize once the new column is live everywhere.