Adding a new column is simple in theory, but in production it can be expensive, risky, and irreversible without downtime. Schema changes touch live data. They affect queries, indexes, replication, and application logic. The wrong change can block writes or lock critical tables for minutes or hours. That is why every new column deserves planning as if it were a deploy of its own.
First, define the column with precision. Choose the smallest data type that fits the data. Avoid NULL defaults unless they are required. Set constraints that enforce correct data at the database level. That will prevent silent corruption later.
Second, add the new column in a way that avoids long-running locks. In PostgreSQL, ADD COLUMN with a default can rewrite the whole table. In MySQL, similar issues occur depending on the storage engine. Use NULL defaults first, then backfill in batches, then add a default constraint. This pattern keeps the table available and responsive during the change.