The logs show the cause in plain text: missing new column in the target table. You know the drill. Database changes are simple until they break production. Adding a new column seems trivial but carries risk, especially in systems under constant load.
A new column affects schema, queries, indexes, and application code. In SQL, you can add one with:
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
On large datasets, this locks the table and blocks writes. For critical systems, use online schema changes or phased rollouts. Add the column as nullable, backfill data in small batches, then enforce constraints. This reduces impact on performance.
In modern pipelines, the new column often needs to propagate across microservices, caches, and analytics layers. Define the change in one place. Keep migrations versioned and executable in test environments before deploying.