prisma-cli-migrate-deploy作者: prisma

prisma migrate deploy

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-cli-migrate-deploy

prisma migrate deploy

Applies pending migrations in production/staging environments.

Command

prisma migrate deploy

What It Does

  • Applies all pending migrations from prisma/migrations/
  • Updates _prisma_migrations table
  • Does NOT generate new migrations
  • Does NOT run seed scripts
  • Safe for CI/CD and production

Options

OptionDescription
--schemaCustom path to your Prisma schema
--configCustom path to your Prisma config file

When to Use

  • Production deployments
  • Staging environments
  • CI/CD pipelines
  • Any non-development environment

Examples

Basic deployment

prisma migrate deploy

In CI/CD pipeline

# GitHub Actions example
- name: Apply migrations
  run: npx prisma migrate deploy
  env:
    DATABASE_URL: ${{ secrets.DATABASE_URL }}

Docker deployment

# Run migrations before starting app
CMD npx prisma migrate deploy && node dist/index.js

Comparison with migrate dev

Featuremigrate devmigrate deploy
Creates migrationsYesNo
Applies migrationsYesYes
Detects driftYesNo
Prompts for inputYesNo
Uses shadow databaseYesNo
Safe for productionNoYes
Resets on issuesPromptsFails

Production Workflow

  1. Development: Create migrations locally

    prisma migrate dev --name add_feature
    
  2. Commit: Include migration files in version control

    git add prisma/migrations
    git commit -m "Add feature migration"
    
  3. Deploy: Apply in production

    prisma migrate deploy
    

Error Handling

Failed migration

If a migration fails, migrate deploy exits with error. The failed migration is marked as failed in _prisma_migrations.

To fix:

  1. Resolve the issue (fix SQL, database state, etc.)
  2. Mark as resolved: prisma migrate resolve --applied <migration_name>
  3. Re-run: prisma migrate deploy

Check status first

prisma migrate status

Shows pending and applied migrations before deploying.

Configuration

Ensure prisma.config.ts has the production database URL:

import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'

export default defineConfig({
  datasource: {
    url: env('DATABASE_URL'),
  },
})

Best Practices

  1. Always run migrate status before migrate deploy in CI
  2. Have a rollback plan (backup before migrations)
  3. Test migrations in staging first
  4. Never use migrate dev in production

NotebookLM 網頁匯入器

一鍵將網頁和 YouTube 影片匯入 NotebookLM。超過 200,000 位使用者信賴。

安裝 Chrome 擴充功能