skills/prisma/cursor-plugin/prisma-cli-migrate-deploy

prisma-cli-migrate-deploy

SKILL.md

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

Option Description
--schema Custom path to your Prisma schema
--config Custom 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

Feature migrate dev migrate deploy
Creates migrations Yes No
Applies migrations Yes Yes
Detects drift Yes No
Prompts for input Yes No
Uses shadow database Yes No
Safe for production No Yes
Resets on issues Prompts Fails

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
Weekly Installs
1
GitHub Stars
5
First Seen
1 day ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
warp1