It sounds simple. One field. One change. But in production systems, a new column is rarely just a column. It is a migration. It is altering tables under load. It is recalculating indexes, touching application code, and adjusting tests. Each part is a risk.
The first question: nullable or not nullable? Adding a non-nullable column to a large table can lock writes or force a full rebuild. A nullable column may avoid downtime but introduces subtle logic into the codebase. Choose with awareness.
Next, data type. Pick the smallest type that fits the purpose. A wrong choice here can waste space and slow queries. Changing type later can be more dangerous than adding the column itself.
Consider default values. In some databases, setting a default while adding the column can rewrite the entire table. In others, it’s metadata-only. Know your engine’s behavior before you run the change in production.