They serve two different environments. The prisma db push is not to be used in your production environment, as stated in the docs

db push uses the same engine as Prisma Migrate to synchronize your Prisma schema with your database schema, and is best suited for schema prototyping. The db push command:

  1. Introspects the database to infer and executes the changes required to make your database schema reflect the state of your Prisma schema.

  2. By default, after changes have been applied to the database schema, generators are triggered (for example, Prisma Client). You do not need to manually invoke prisma generate.

  3. If db push anticipates that the changes could result in data loss, it will:

  • Throw an error
  • Require the --accept-data-loss option if you still want to make the changes

Note: db push does not interact with or rely on migrations. The migrations table will not be updated, and no migration files will be generated.

The prisma migrate dev is used in you local environment, as explained in the docs

migrate dev is a development command and should never be used in a production environment.

This command:

  1. Replays the existing migration history in the shadow database in order to detect schema drift (edited or deleted migration file, or a manual changes to the database schema)
  2. Applies pending migrations to the shadow database (for example, new migrations created by colleagues)
  3. Generates a new migration from any changes you made to the Prisma schema before running migrate dev
  4. Applies all unapplied migrations to the development database and updates the _prisma_migrations table
  5. Triggers the generation of artifacts (for example, the Prisma Client)

The migrate dev command will prompt you to reset the database in the following scenarios:

  • Migration history conflicts caused by modified or missing migrations
  • The database schema has drifted away from the end-state of the migration history

If you have any other question regarding this, there is this comparison in the docs explaining when to use one or the other.

Answer from Daniel Olavio Ferreira on Stack Overflow
🌐
Prisma
prisma.io › home › prototyping your schema › prototyping your schema › prototyping your schema › prototyping your schema
Prototyping your schema | Prisma Documentation
The db push command: Introspects the database to infer and executes the changes required to make your database schema reflect the state of your Prisma schema.
🌐
Prisma
prisma.io › home › push › push › push
prisma db push | Apply Schema to Database (No Migrations) | Prisma Documentation
The prisma db push command pushes the state of your Prisma schema to the database without using migrations.
🌐
Fig
fig.io › manual › prisma › db › push
prisma db push | Fig
This command pushes the state of your Prisma schema file to the database without using migrations files
🌐
Prisma
prisma.io › home › prisma cli reference › prisma cli reference › prisma cli reference
Prisma CLI reference | Prisma Documentation
The db push command pushes the state of your Prisma schema to the database without using migrations.
Top answer
1 of 4
19

They serve two different environments. The prisma db push is not to be used in your production environment, as stated in the docs

db push uses the same engine as Prisma Migrate to synchronize your Prisma schema with your database schema, and is best suited for schema prototyping. The db push command:

  1. Introspects the database to infer and executes the changes required to make your database schema reflect the state of your Prisma schema.

  2. By default, after changes have been applied to the database schema, generators are triggered (for example, Prisma Client). You do not need to manually invoke prisma generate.

  3. If db push anticipates that the changes could result in data loss, it will:

  • Throw an error
  • Require the --accept-data-loss option if you still want to make the changes

Note: db push does not interact with or rely on migrations. The migrations table will not be updated, and no migration files will be generated.

The prisma migrate dev is used in you local environment, as explained in the docs

migrate dev is a development command and should never be used in a production environment.

This command:

  1. Replays the existing migration history in the shadow database in order to detect schema drift (edited or deleted migration file, or a manual changes to the database schema)
  2. Applies pending migrations to the shadow database (for example, new migrations created by colleagues)
  3. Generates a new migration from any changes you made to the Prisma schema before running migrate dev
  4. Applies all unapplied migrations to the development database and updates the _prisma_migrations table
  5. Triggers the generation of artifacts (for example, the Prisma Client)

The migrate dev command will prompt you to reset the database in the following scenarios:

  • Migration history conflicts caused by modified or missing migrations
  • The database schema has drifted away from the end-state of the migration history

If you have any other question regarding this, there is this comparison in the docs explaining when to use one or the other.

2 of 4
11
  • Prisma db push syncs (and formats) your prisma schema to that of your database schema.
  • While prisma migrate dev "command automatically generates SQL migration files (saved in /prisma/migrations) and applies them to the database".

The main difference between both is the generation of the migration files.

🌐
Pocketcmds
pocketcmds.com › commands › prisma › prisma-db
prisma db push, pull, seed - Schema Management | PocketCmds
Prisma database: push schema to database without migrations, pull existing schema, seed initial data, and execute raw SQL commands.
🌐
Prisma
prisma.io › home › understanding migrations › understanding migrations › understanding migrations › understanding migrations
A mental model for Prisma Migrate | Prisma Documentation
Moves your database schema forward ... db execute command. The prisma db push command allows you to sync your Prisma schema and database schema without persisting a migration (/prisma/migrations)....
🌐
Prisma ORM
mintlify.wiki › mintlify atlas › mintlify-atlas/docs-atlas-035637da › schema prototyping with db push
Schema Prototyping with db push - Prisma ORM
March 1, 2026 - prisma db push pushes the state from your Prisma schema directly to your database, bypassing the migration history.
Find elsewhere
🌐
Prisma
prisma.io › home › overview of prisma migrate › overview of prisma migrate
Prisma Migrate: Database, Schema, SQL Migration Tool | Prisma Documentation
Declarative: The data model is described in a declarative way in the Prisma schema. Prisma Migrate generates SQL migration files from that data model. Imperative: All generated SQL migration files are fully customizable.
🌐
Prisma
prisma.io › home › db › db
prisma db | Database Schema & Lifecycle Commands | Prisma Documentation
The prisma db command group provides tools to manage your database schema and lifecycle during development. ... # Pull schema from database prisma db pull # Push schema to database prisma db push # Seed the database prisma db seed # Execute a SQL script prisma db execute --file ./script.sql
🌐
Prisma
prisma.io › home › pull › pull › pull
prisma db pull | Introspect Database to Prisma Schema | Prisma Documentation
The prisma db pull command connects to your database and adds Prisma models to your Prisma schema that reflect the current database schema.
🌐
PlanetScale
planetscale.com › guides › frameworks and orms › prisma › automatic prisma migrations
Automatic Prisma migrations - PlanetScale
1 week ago - From a high level, Prisma’s db push introspects your PlanetScale database to infer and execute the changes required to make your database schema reflect the state of your Prisma schema. When prisma db push is run, it will ensure the schema in the PlanetScale branch you are currently connected to matches your current Prisma schema.
🌐
MCP Servers
mcpservers.org › home › agent skills library › prisma-cli-db-push
prisma-cli-db-push | Agent Skills Library
Pushes schema changes directly to database without creating migrations. Ideal for prototyping. ... Completely resets database and applies schema. prisma db push prisma generate # Must run explicitly in v7
🌐
GitHub
github.com › prisma › prisma › discussions › 25712
Using push + migrate messed up my db. Am I using them correctly and how to fix it? · prisma/prisma · Discussion #25712
The recommended workflow for prototyping changes before creating a migration is: a) Use prisma db push to quickly prototype and iterate on your schema changes. b) Once you're satisfied with the changes, run prisma migrate dev to generate a migration ...
Author   prisma
🌐
DEV Community
dev.to › geraldmuvengei06 › the-case-of-the-frozen-supabaseprisma-db-push-why-your-migrations-might-be-stuck-75j
The Case of the Frozen Supabase/Prisma db push: Why Your Migrations Might Be Stuck - DEV Community
June 11, 2025 - This is what Prisma needs for database migrations and schema pushes. DATABASE_URL: This is your connection string that goes through Supabase's connection pooler (Supavisor). This is ideal for your application's runtime queries, as it efficiently manages connections. When you instruct Prisma to modify your database schema (such as with db push or migrate), it requires a direct, unmediated connection to the database.
🌐
Answer Overflow
answeroverflow.com › m › 1352551703760605299
Workflow for getting your DB schema into production when using separate databases - Prisma
March 21, 2025 - should be part of an automated CI/CD pipeline, and we do not generally recommend running this command locally to deploy changes to a production database." Deploy database changes with Prisma Migrate ...