Adding a new column sounds small. It is not. In production, the risks are downtime, data loss, and broken code paths. Whether you use MySQL, PostgreSQL, or another relational database, the steps are precise. Get them wrong, and the damage spreads fast.
First, decide if the new column is nullable or has a default value. Adding a NOT NULL column without a default will fail if any rows exist. With large datasets, adding a column with a default may still lock the table. Some engines rewrite the entire table during the operation, blocking reads and writes.
Second, choose the right migration pattern. In PostgreSQL, ALTER TABLE ... ADD COLUMN is typically fast for nullable columns without defaults. For MySQL with InnoDB, online DDL can help avoid full table locks, but watch for constraints and indexes that force a rebuild.