Adding a new column should be simple. In production, it is not. Schema changes hit live systems. They lock rows. They block writes. They degrade performance when done wrong. The goal is to change structure without disrupting service.
Start with a migration script. Use ALTER TABLE with care. If the table is large, adding a new column can trigger a full table rewrite. On some engines, this will block until complete. Break the work into small steps. In PostgreSQL, adding a nullable column without a default is fast. Setting a default later, in a separate step, avoids table locks during the add.
For MySQL, ALTER TABLE can be instant or blocking depending on the storage engine and version. Use ALGORITHM=INPLACE or ALGORITHM=INSTANT when you can. Check the docs before running it on production. If you can, run migrations in a replication pipeline before applying them to the primary.
Think about indexes. A new column may need one. Adding an index can be more expensive than adding the column. Use concurrent index creation in PostgreSQL (CREATE INDEX CONCURRENTLY) or LOCK=NONE in MySQL. Both avoid long locks on writes.