The new column appears in the schema like it has always been there. One migration, one push, and it reshapes how your data works. Done wrong, it breaks everything. Done right, it unlocks new features without a single request timing out.
A new column in a database is more than a field name. It changes queries, indexes, joins, and the contract between your backend and everything that consumes it. Adding columns in production requires care. You need to assess types, defaults, indexing strategies, and rollouts before you type the first ALTER TABLE.
For relational databases, a new column with a default value can trigger a full table rewrite. On large datasets, this means downtime or degraded performance. The safer pattern is to add the column as nullable, backfill in batches, then enforce constraints. PostgreSQL, MySQL, and other engines each have nuances—Postgres can add a nullable column instantly, while indexed or defaulted columns may still be costly.