Adding a new column sounds trivial. It is not. It changes contracts between code and data. It alters indexes, queries, and performance profiles. Done without planning, it costs uptime and trust.
Start by defining the new column in your database schema. Use explicit data types. Avoid nullable defaults unless the value is unknown by design. For large datasets, run the change in a transaction only if your engine supports it without locking the entire table. If not, stage the new column in a rolling migration.
Update your application layer next. Map the new column in your ORM models or raw queries. Write unit tests that assert its presence and correct type. Mismatches here cause runtime errors long after the migration is finished.
If the new column impacts indexes, create them after you have populated initial data. Building indexes during column creation can cause table locks and slow writes. Use your database’s online index creation if possible.