prisma-orm-v7-skills

$npx mdskill add elophanto/EloPhanto/prisma-orm-v7-skills

Prevent Prisma v7 upgrade failures by checking breaking changes.

  • Identify Node.js, TypeScript, and schema migration requirements.
  • Integrates with Prisma CLI, package managers, and TypeScript.
  • Analyzes project configuration against official upgrade guides.
  • Outputs specific dependency updates and import path corrections.
SKILL.md
.github/skills/prisma-orm-v7-skillsView on GitHub ↗
---
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
---


## Triggers

- prisma
- orm
- database
- schema
- migration
- prisma client
- prisma migrate
- prisma studio
- db schema
- data model

## 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.

## Verify

- The code was actually executed (or type-checked / linted as appropriate) and the command output is captured
- Dependencies and runtime versions used are pinned and recorded (e.g., requirements.txt, package.json + lockfile, .nvmrc)
- Errors or warnings emitted by the run are addressed or explicitly accepted with a reason
- New external I/O (network, filesystem, DB) has timeouts and error handling, not silent failure
- Tests for the change were run and the pass/fail count is in the transcript
- Secrets and credentials are read from env/secret store, not hard-coded, and `.env` files are not committed
More from elophanto/EloPhanto