Here is a scenario from a project in its third year of operation. Migrations are managed properly. CI is green. validate passes.

Then an error shows up in production only. The production table has a column that doesn't exist anywhere else. Nobody remembers who added it, when, or why. There is no migration file for it.

The important part is not the mystery column. It's that this divergence passed every check the team had. Nothing was broken. The tooling worked exactly as designed — and, as designed, it does not detect this class of problem.

This post is about why.

Code and databases are not symmetric