Adding a new column is one of the most common schema changes. It feels simple. In practice, it is a live change that can break queries, cause deployments to fail, or create downtime if done without care.
You start by defining the column name, data type, and constraints. Every choice here matters. A wrong type can force future migrations. A nullable field today may cause data inconsistencies tomorrow. In production, you must also plan for indexes, default values, and how existing rows will be backfilled.
Modern systems demand zero-downtime deployments. To add a new column without locking tables or blocking writes, use staged migrations. First, add the column with a null default. Then deploy code that writes to both old and new fields. Backfill in small batches. Only after verifying data integrity should you switch reads to the new column and remove legacy fields.