When you add a new column, the first rule is precision. Know exactly why it exists, what type it is, and how it integrates with existing schema. Every column changes the shape of your dataset. Every column changes the cost of your queries. Adding blindly leads to migration pain, index bloat, and unpredictable joins.
Schema migrations for new columns should be atomic, tested, and reversible. Use explicit defaults instead of nulls when possible. Consider whether the new column belongs in the current table or a related one. Denormalize only if you have measured the benefits. Always analyze how this change will affect indexes and foreign keys.
Performance costs creep in silently. Large tables with millions of rows will feel the impact of a new column at insert time, during scans, and in replication. Benchmark. Load test. Measure queries before and after. Do not guess.