home / skills / gocallum / nextjs16-agent-skills / prisma-orm-v7-skills
This skill helps you migrate to Prisma ORM 7 by outlining breaking changes, config migrations, and upgrade steps for a smooth transition.
npx playbooks add skill gocallum/nextjs16-agent-skills --skill prisma-orm-v7-skillsReview the files below or copy the command above to add this skill to your agents.
---
name: prisma-orm-v7-skills
description: Key facts and breaking changes for upgrading to Prisma ORM 7. Consider version 7 changes before generation or troubleshooting
---
## Links
- Upgrade guide (v7): https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7
- Prisma Config reference: https://www.prisma.io/docs/orm/reference/prisma-config-reference
- Prisma Client Extensions: https://www.prisma.io/docs/orm/prisma-client/client-extensions
- Prisma 7 migration prompt (AI agents): https://www.prisma.io/docs/ai/prompts/prisma-7
## Upgrade
```sh
# Upgrade packages
pnpm add @prisma/client@7
pnpm add -D prisma@7
```
## Breaking Changes (v7)
### Minimum versions
- Node.js: 20.19.0+ (and 22.x)
- TypeScript: 5.4.0+
### Prisma is now ESM
- Prisma ORM ships as ES modules.
- Set `"type": "module"` in `package.json` (or migrate your project to ESM).
- TypeScript projects must compile/resolve ESM (guide example: `module: ESNext`, `target: ES2023`, `moduleResolution: node`).
### Prisma schema + generation changes
- Generator provider: `prisma-client-js` → `prisma-client`.
- `output` is required in `generator client`.
- Prisma Client is no longer generated into `node_modules` by default.
- After `npx prisma generate`, update imports to your generated output path (example:
`import { PrismaClient } from './generated/prisma/client'`).
Schema datasource deprecations:
- `url`, `directUrl`, `shadowDatabaseUrl` in `schema.prisma` are deprecated.
- Move datasource config to `prisma.config.ts` (Prisma Config).
- If you used `directUrl` for migrations, set the CLI migration connection string in `prisma.config.ts`.
### Driver adapters required for Prisma Client (new instantiation)
- Prisma Client creation now requires a driver adapter for all databases.
- Example adapters:
- Postgres: `@prisma/adapter-pg` (use `PrismaPg` with a direct DB connection string)
- SQLite: `@prisma/adapter-better-sqlite3`
### Prisma Accelerate users (v6 → v7)
- Do not pass `prisma://` or `prisma+postgres://` (Accelerate URLs) to a driver adapter.
- Keep the Accelerate URL and instantiate Prisma Client with the Accelerate extension instead.
### Env vars are not loaded by default
- Prisma CLI no longer auto-loads `.env` files in v7.
- Explicitly load env vars (for example `import 'dotenv/config'` in `prisma.config.ts`, or load env in your scripts).
- Bun users: no change required (bun auto-loads `.env`).
### Prisma CLI config moved to `prisma.config.ts`
- Prisma Config is now the default place to configure how Prisma CLI behaves.
- Place `prisma.config.ts` at the project root (next to `package.json`).
- Configure schema path, migrations path/seed, and datasource URL there.
### Client middleware removed
- `prisma.$use(...)` is removed.
- Migrate middleware logic to Prisma Client Extensions.
### Metrics removed from Client Extensions
- The Metrics preview feature is removed in v7.
- Use your database driver/adapter or implement custom counters via extensions.
### Migrate/seed/generate behavior changes
- Automatic seeding after `prisma migrate dev` / `prisma migrate reset` is removed.
- Run seeding explicitly: `pnpm prisma db seed` (or `pnpm exec prisma db seed`).
- `--skip-generate` and `--skip-seed` flags removed.
- `prisma migrate dev` and `prisma db push` no longer run `prisma generate` automatically.
- Run `pnpm prisma generate` (or `pnpm exec prisma generate`) explicitly.
### Prisma-specific env vars removed
- Removed env vars:
- `PRISMA_CLI_QUERY_ENGINE_TYPE`
- `PRISMA_CLIENT_ENGINE_TYPE`
- `PRISMA_QUERY_ENGINE_BINARY`
- `PRISMA_QUERY_ENGINE_LIBRARY`
- `PRISMA_GENERATE_SKIP_AUTOINSTALL`
- `PRISMA_SKIP_POSTINSTALL_GENERATE`
- `PRISMA_GENERATE_IN_POSTINSTALL`
- `PRISMA_GENERATE_DATAPROXY`
- `PRISMA_GENERATE_NO_ENGINE`
- `PRISMA_CLIENT_NO_RETRY`
- `PRISMA_MIGRATE_SKIP_GENERATE`
- `PRISMA_MIGRATE_SKIP_SEED`
### MongoDB support
- Prisma ORM 7 does not support MongoDB yet; stay on Prisma ORM 6 if you need MongoDB.
## Upgrade Checklist (quick)
- Upgrade packages; confirm Node/TypeScript versions.
- Move to ESM (or adjust your runtime/build to consume ESM).
- Update `schema.prisma` generator to `provider = "prisma-client"` and set `output`.
- Run `pnpm prisma generate` and update Prisma Client imports to the generated output path.
- Add `prisma.config.ts` at repo root; move datasource config and load env explicitly.
- Update Prisma Client instantiation to use a driver adapter (unless using Accelerate).
- Update workflows: run `pnpm prisma generate` and `pnpm prisma db seed` explicitly.
This skill summarizes key facts and breaking changes when upgrading to Prisma ORM 7. It highlights required runtime/tooling versions, ESM migration implications, schema and generator updates, driver adapter requirements, and CLI/config behavior changes. Use it to check compatibility and plan migration steps before generating code or troubleshooting upgrade issues.
The skill inspects the major compatibility and behavior changes introduced in Prisma 7 and translates them into actionable items: required Node/TypeScript versions, generator and schema changes, where to configure datasources, and how to instantiate the client. It also flags removed features (middleware, metrics, certain env vars), changed defaults (no automatic .env loading, no auto-generate), and database support limitations (no MongoDB). Finally, it produces a concise upgrade checklist to apply in a project.
Do I need to convert my whole project to ESM to use Prisma 7?
Prisma 7 ships as ESM so your runtime must support ESM. Either set "type": "module" or adjust your build to produce ESM-compatible output; TypeScript projects should target ESNext/ES2023 and use node module resolution.
Are Prisma CLI env vars and automatic seeding still supported?
No. Prisma 7 removed many Prisma-specific env vars and no longer auto-loads .env or auto-run seed/generate. Explicitly load env files and run prisma generate and prisma db seed in your scripts or CI.