Preview
Before a deployment, see what the next start would do to a database, without changing its schema, data or history.
Same plan, read-only
preview plans with the same rules, options and backfills as migrate, inside one read-only REPEATABLE READ transaction. It takes no migration lock and runs no DDL, so a role with read rights suffices.
Steps, approvals, locks and checks
The report lists the mode, the steps in execution order with their SQL, the approvals required and missing, the locks the migration will take, and findings with stable codes.
- Ready
- A complete plan without blockers, and every required check passed.
- Blocked
- A blocker was found: a missing approval, drift, or data that breaks a constraint.
- Incomplete
- No blocker, but a check is open: a timeout or a missing privilege. Never treated as ready.
Data checks run on the rows as they are, with the migration's values projected: NULLs left in a column that becomes required, duplicates for a unique key, missing rows for a foreign key, rows that make a check false.
Without the application's classes
exportTarget and exportBackfills write the target and the backfills as JSON. The CLI previews from those files.
- 0
- Ready.
- 1
- Blocked.
- 3
- Incomplete.
- 2
- Invalid call or technical error.
The migration checks everything again under its locks. A database that changed after the preview still stops the start.