Source code
Releases
Stability
Security & compliance
Destructive migration without shim
Part of the Production readiness check · fix arrives as a guide
What it is
A migration drops or renames a column or table that the currently deployed code still reads, with no intermediate compatibility step.
Why it matters
During a rolling deploy both versions run at once. The old instances query a column that no longer exists, so a portion of traffic errors for the length of the rollout — and a rollback lands on a schema that cannot serve the old code.
How to fix it
Use expand-contract: add the new shape, backfill, deploy code that writes both and reads the new one, and only drop the old column in a later release once nothing references it.
Run them all on your app
Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.