A new column changes more than schema. It touches queries, indexes, migrations, and application logic. In production, it can lock tables, slow requests, and trigger cascading errors. The wrong approach creates downtime or data loss. The right approach treats the column as a first-class citizen from creation to deployment.
Use explicit migrations. Always define the column with the correct data type, nullability, and default value. A poorly chosen type increases storage or forces costly casting later. Avoid adding non-null columns without defaults in large datasets; they rewrite entire tables and can block for minutes or hours.
Add indexes only when necessary. An index on a new column helps performance for reads but slows writes and consumes disk. Measure impact before enabling in production. For large tables, add indexes concurrently when your database supports it.