--- name: prisma-cli description: Prisma ORM CLI commands reference covering init, generate, migrate, db, dev, complete, studio, validate, format, debug, and mcp. Use for ORM/database CLI workflows, not the Prisma Platform CLI. Triggers on "prisma init", "prisma generate", "prisma migrate", "prisma db", "prisma complete", "prisma studio", "prisma mcp". license: MIT metadata: author: prisma version: "7.9.1" --- # Prisma CLI Reference Reference for Prisma ORM CLI commands. This skill provides guidance on command usage, options, and best practices for current Prisma ORM releases. ## Boundary: Platform and Compute Do not confuse the stable ORM command (`prisma`) with the public-beta Platform package (`@prisma/cli`, binary `prisma-cli`). Use `prisma-compute` for Compute apps and workspace auth, and `prisma-postgres` for Platform projects and databases. ## When to Apply Reference this skill when: - Setting up a new Prisma project (`prisma init`) - Generating Prisma Client (`prisma generate`) - Running database migrations (`prisma migrate`) - Managing database state (`prisma db push/pull`) - Using local development database (`prisma dev`) - Debugging Prisma issues (`prisma debug`) - Generating shell completions (`prisma complete`) ## Rule Categories by Priority | Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Setup | HIGH | `init` | | 2 | Generation | HIGH | `generate` | | 3 | Development | HIGH | `dev` | | 4 | Database | HIGH | `db-` | | 5 | Migrations | CRITICAL | `migrate-` | | 6 | Utility | MEDIUM | `complete`, `studio`, `validate`, `format`, `debug`, `mcp` | ## Command Categories | Category | Commands | Purpose | |----------|----------|---------| | Setup | `init` | Initialize a Prisma project | | Generation | `generate` | Generate Prisma Client | | Validation | `validate`, `format` | Schema validation and formatting | | Development | `dev` | Local Prisma Postgres for development | | Database | `db pull`, `db push`, `db seed`, `db execute` | Direct database operations | | Migrations | `migrate dev`, `migrate deploy`, `migrate reset`, `migrate status`, `migrate diff`, `migrate resolve` | Schema migrations | | Utility | `complete`, `studio`, `mcp`, `version`, `debug` | Shell, development, and AI tooling | ## Quick Reference ### Project Setup ```bash # Initialize new project (creates prisma/ folder and prisma.config.ts) prisma init # Initialize with specific database prisma init --datasource-provider postgresql prisma init --datasource-provider mysql prisma init --datasource-provider sqlite # Initialize with Prisma Postgres (cloud) prisma init --db # Initialize with an example model prisma init --with-model ``` ### Client Generation ```bash # Generate Prisma Client prisma generate # Watch mode for development prisma generate --watch # Generate specific generator only prisma generate --generator client ``` ### Bun Runtime When using Bun, always add the `--bun` flag so Prisma runs with the Bun runtime (otherwise it falls back to Node.js because of the CLI shebang): ```bash bunx --bun prisma init bunx --bun prisma generate ``` ### Local Development Database ```bash # Start local Prisma Postgres prisma dev # Start with specific name prisma dev --name myproject # Start in background (detached) prisma dev --detach # List all local instances prisma dev ls # Stop instance prisma dev stop myproject # Remove instance data prisma dev rm myproject ``` ### Database Operations ```bash # Pull schema from existing database prisma db pull # Push schema to database (no migrations) prisma db push # Seed database prisma db seed # Execute raw SQL prisma db execute --file ./script.sql ``` ### Migrations (Development) ```bash # Create and apply migration prisma migrate dev # Create migration with name prisma migrate dev --name add_users_table # Create migration without applying prisma migrate dev --create-only # Reset database and apply all migrations prisma migrate reset ``` ### Migrations (Production) ```bash # Apply pending migrations (CI/CD) prisma migrate deploy # Check migration status prisma migrate status # Compare schemas and generate diff prisma migrate diff --from-config-datasource --to-schema schema.prisma --script ``` ### Utility Commands ```bash # Open Prisma Studio (database GUI) prisma studio # Start Prisma's MCP server for AI tools prisma mcp # Show version info prisma version prisma -v # Debug information prisma debug # Validate schema prisma validate # Format schema prisma format # Generate shell completion code prisma complete zsh ``` ## AI Safety Checkpoint Prisma blocks destructive commands when it detects an AI agent until the agent has obtained explicit user consent. This covers `migrate reset`, `db push --force-reset`, and `db push --accept-data-loss`. - Explain the exact data-loss impact and ask for consent immediately before running the command. - Do not infer consent from earlier or unrelated messages. - If automation needs the consent variable, set `PRISMA_USER_CONSENT_FOR_DANGEROUS_AI_ACTION` to the user's exact consent message. Do not invent the text. - The Prisma MCP server deliberately has no `migrate-reset` tool. Read `references/agent-safety.md` before any destructive Prisma command. ## Current Prisma CLI Setup ### New Configuration File Use `prisma.config.ts` for CLI configuration: ```typescript import 'dotenv/config' import { defineConfig, env } from 'prisma/config' export default defineConfig({ schema: 'prisma/schema.prisma', migrations: { path: 'prisma/migrations', seed: 'tsx prisma/seed.ts', }, datasource: { url: env('DATABASE_URL'), }, }) ``` ### Current Command Behavior - Run `prisma generate` explicitly after `migrate dev`, `db push`, or other schema syncs when you need fresh client output - Run `prisma db seed` explicitly after `migrate dev` or `migrate reset` when you need seed data - Use `prisma db execute --file ...` for raw SQL scripts ### Environment Variables Load environment variables explicitly in `prisma.config.ts`, commonly with `dotenv`: ```typescript // prisma.config.ts import 'dotenv/config' ``` ## Rule Files See individual rule files for detailed command documentation: ``` references/init.md - Project initialization references/generate.md - Client generation references/dev.md - Local development database references/db-pull.md - Database introspection references/db-push.md - Schema push references/db-seed.md - Database seeding references/db-execute.md - Raw SQL execution references/migrate-dev.md - Development migrations references/migrate-deploy.md - Production migrations references/migrate-reset.md - Database reset references/migrate-status.md - Migration status references/migrate-resolve.md - Migration resolution references/migrate-diff.md - Schema diffing references/studio.md - Database GUI references/mcp.md - Prisma MCP server references/complete.md - Shell completion generation references/agent-safety.md - AI consent checkpoint for destructive commands references/validate.md - Schema validation references/format.md - Schema formatting references/debug.md - Debug info ``` ## How to Use Use the command categories above for navigation, then open the specific command reference file you need.