Adding a new column to a table should be simple. In practice, it can break production if not done with precision. Schema changes are powerful and risky because they alter the shape of live data. To do it right, you need to control locking, migration speed, and backward compatibility.
For SQL databases like PostgreSQL or MySQL, the ALTER TABLE statement is the starting point:
ALTER TABLE orders ADD COLUMN tracking_number VARCHAR(30);
This works in development. In production, you need more care. Large tables can lock writes, stall queries, or cause replication lag. On high-traffic systems, adding a nullable column with a default can rewrite the whole table. The safer approach is to first add it without a default, then backfill in small batches, and finally set the default or constraints.