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 확장 프로그램 설치