Adding a new column sounds small. It isn’t. Every schema change has weight. You touch the data model, the queries, the indexes, and the code that reads them. If you move carelessly, you break production.
A new column starts with definition. Choose a clear name. Keep it short. Avoid overloaded terms. Decide the data type. Pick the smallest type that fits your future data, not just today’s values. Decide if it can be NULL. Default values matter; they fill every existing row instantly and can lock your database if you’re not careful.
Next, add the column with care. On PostgreSQL, use ALTER TABLE ... ADD COLUMN with defaults delayed if dataset size is large. On MySQL, check whether the operation runs online or blocks writes. Plan for indexes after the data is in place. Adding an index with live traffic? Use CONCURRENTLY in Postgres, ALGORITHM=INPLACE in MySQL.
Check every SELECT and INSERT that touches this table. Some ORMs break if the schema changes mid-flight. Update migrations and run them in staging against real production data volumes. Measure the performance impact before merging to main.