Adding a new column to a live database is not just another migration step. It touches schema integrity, query performance, and the stability of every service that depends on that table. Done poorly, it can cause downtime or hidden data issues that surface weeks later.
A new column definition begins with intent. Decide the name, type, default value, and nullability. Every choice affects storage, index size, and data access patterns. Run the change in a staging environment first. Use representative data volumes. Measure query plans before and after.
In production, apply the new column with zero-downtime techniques. In PostgreSQL, adding a nullable column without a default is fast. Adding a non-nullable column with a default rewrites the table and locks it. On MySQL, be aware of table copy operations. For massive tables, use online schema change tools or versioned deployments that separate the definition change from the data backfill step.