Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

migration status

The database stores a marker, a row that says which version of your contract it currently matches. migration status compares that marker with a target version and lists the migrations in between. The target is the contract you last ran contract emit on, unless --to names another.

Use it before and after db migrate, and when debugging why an environment is not at the expected contract state.

title="bun"
bunx prisma migration status --db "$DATABASE_URL"
pnpm
pnpm prisma migration status --db "$DATABASE_URL"
yarn
yarn prisma migration status --db "$DATABASE_URL"
npm
npx prisma migration status --db "$DATABASE_URL"
Option What it does
--db <url> Connects to the database.
--space <id> Narrows output to a single contract space.
--to <contract> Sets the target contract reference (hash, prefix, ref name, migration directory name, <dir>^, or ./path).
--from <contract> Sets the origin contract reference. With --from, the command computes the path offline and does not need a database.
--legend Prints a key for the tree glyphs and lane colors.
--ascii Uses ASCII glyphs (pipe-friendly).
--config <path> Read this config file instead of ./prisma.config.ts.
--json Prints a machine-readable result.
title="bun"
bunx prisma migration status --db "$DATABASE_URL"

bunx prisma migration status --to production

bunx prisma migration status --from abc123 --to production

bunx prisma migration status --ascii
pnpm
pnpm prisma migration status --db "$DATABASE_URL"
pnpm prisma migration status --to production
pnpm prisma migration status --from abc123 --to production
pnpm prisma migration status --ascii
yarn
yarn prisma migration status --db "$DATABASE_URL"
yarn prisma migration status --to production
yarn prisma migration status --from abc123 --to production
yarn prisma migration status --ascii
npm
npx prisma migration status --db "$DATABASE_URL"
npx prisma migration status --to production
npx prisma migration status --from abc123 --to production
npx prisma migration status --ascii

With --db, status reads the marker from the database and compares it with the target. With --from, it starts from the state you name instead and needs no database.

With --json, the command prints one "kind": "result" line. Inside its envelope:

  • result.summary is the sentence the human output ends with, such as Up to date or a count of pending migrations.
  • result.spaces[].migrations[] lists each migration on disk with a status: pending (on the way to the target, not yet applied), applied (on the way to the target, already applied), or null (not on the way to the target).
  • diagnostics[], beside result rather than inside it, lists each problem found. Each entry has a code, for example MIGRATION.MARKER_NOT_IN_HISTORY, a summary, and a severity, which this command always sets to warn.

The exit code is 0 even when diagnostics is not empty. A non-zero exit code means the command itself failed, for example with MIGRATION.REF_NOT_FOUND when --to names a ref that does not exist.

The migration group has three more read-only views: migration graph draws the chain of migrations, migration log lists what has run, and migration list lists the migrations on disk. Run each with --help for details.

Use db verify after applying migrations to check the final database shape against the emitted contract.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu