Adding a new column sounds simple, but in production it is never trivial. Schema changes can lock tables. They can block writes. They can slow down critical queries. A bad migration at the wrong time can knock out a live system. That is why experienced teams treat the process as a controlled operation, not a routine chore.
First, define the purpose of the new column. This means knowing the exact type, constraints, default value, and how it will be populated. Decide if it should be nullable or if you will backfill data during the migration.
Second, choose a migration approach that matches your database engine. In PostgreSQL and MySQL, adding a column with a default and NOT NULL can be costly because it rewrites the table. To avoid downtime, add the column as nullable, backfill data in batches, and then enforce constraints in a later step. Use tools like pt-online-schema-change or gh-ost for MySQL, and transaction-safe migrations for PostgreSQL.