prisma-orm-v7-skills
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLinks
链接
- 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
- 升级指南(v7版本):https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7
- Prisma 配置参考:https://www.prisma.io/docs/orm/reference/prisma-config-reference
- Prisma Client 扩展:https://www.prisma.io/docs/orm/prisma-client/client-extensions
- Prisma 7 迁移提示(AI Agent):https://www.prisma.io/docs/ai/prompts/prisma-7
Upgrade
升级步骤
sh
undefinedsh
undefinedUpgrade packages
升级包
pnpm add @prisma/client@7
pnpm add -D prisma@7
undefinedpnpm add @prisma/client@7
pnpm add -D prisma@7
undefinedBreaking Changes (v7)
重大变更(v7版本)
Minimum versions
最低版本要求
- Node.js: 20.19.0+ (and 22.x)
- TypeScript: 5.4.0+
- Node.js:20.19.0+(以及22.x版本)
- TypeScript:5.4.0+
Prisma is now ESM
Prisma 现在采用 ESM 模块
- Prisma ORM ships as ES modules.
- Set in
"type": "module"(or migrate your project to ESM).package.json - TypeScript projects must compile/resolve ESM (guide example: ,
module: ESNext,target: ES2023).moduleResolution: node
- Prisma ORM 以 ES 模块形式发布。
- 在中设置
package.json(或将项目迁移到ESM)。"type": "module" - TypeScript 项目必须编译/解析ESM(配置示例:,
module: ESNext,target: ES2023)。moduleResolution: node
Prisma schema + generation changes
Prisma 架构文件与生成逻辑变更
- Generator provider: →
prisma-client-js.prisma-client - is required in
output.generator client - Prisma Client is no longer generated into by default.
node_modules - After , update imports to your generated output path (example:
npx prisma generate).import { PrismaClient } from './generated/prisma/client'
Schema datasource deprecations:
- ,
url,directUrlinshadowDatabaseUrlare deprecated.schema.prisma - Move datasource config to (Prisma Config).
prisma.config.ts - If you used for migrations, set the CLI migration connection string in
directUrl.prisma.config.ts
- 生成器提供方:→
prisma-client-js。prisma-client - 中必须指定
generator client字段。output - Prisma Client 默认不再生成到目录中。
node_modules - 执行后,更新导入路径至生成的输出目录(示例:
npx prisma generate)。import { PrismaClient } from './generated/prisma/client'
架构文件数据源弃用项:
- 中的
schema.prisma、url、directUrl已被弃用。shadowDatabaseUrl - 将数据源配置迁移到(Prisma 配置文件)。
prisma.config.ts - 如果之前使用进行迁移,请在
directUrl中设置CLI迁移连接字符串。prisma.config.ts
Driver adapters required for Prisma Client (new instantiation)
Prisma Client 现在需要驱动适配器(新实例化方式)
- Prisma Client creation now requires a driver adapter for all databases.
- Example adapters:
- Postgres: (use
@prisma/adapter-pgwith a direct DB connection string)PrismaPg - SQLite:
@prisma/adapter-better-sqlite3
- Postgres:
- 所有数据库的Prisma Client创建现在都需要驱动适配器。
- 适配器示例:
- Postgres:(结合直接数据库连接字符串使用
@prisma/adapter-pg)PrismaPg - SQLite:
@prisma/adapter-better-sqlite3
- Postgres:
Prisma Accelerate users (v6 → v7)
Prisma Accelerate 用户(从v6升级到v7)
- Do not pass or
prisma://(Accelerate URLs) to a driver adapter.prisma+postgres:// - Keep the Accelerate URL and instantiate Prisma Client with the Accelerate extension instead.
- 不要将或
prisma://(Accelerate URL)传递给驱动适配器。prisma+postgres:// - 保留Accelerate URL,改用Accelerate扩展来实例化Prisma Client。
Env vars are not loaded by default
环境变量不再默认加载
- Prisma CLI no longer auto-loads files in v7.
.env - Explicitly load env vars (for example in
import 'dotenv/config', or load env in your scripts).prisma.config.ts - Bun users: no change required (bun auto-loads ).
.env
- Prisma CLI 在v7版本中不再自动加载文件。
.env - 需要显式加载环境变量(例如在中添加
prisma.config.ts,或在脚本中加载环境变量)。import 'dotenv/config' - Bun 用户:无需更改(Bun会自动加载)。
.env
Prisma CLI config moved to prisma.config.ts
prisma.config.tsPrisma CLI 配置迁移到prisma.config.ts
prisma.config.ts- Prisma Config is now the default place to configure how Prisma CLI behaves.
- Place at the project root (next to
prisma.config.ts).package.json - Configure schema path, migrations path/seed, and datasource URL there.
- Prisma 配置文件现在是配置Prisma CLI行为的默认位置。
- 将放在项目根目录(与
prisma.config.ts同级)。package.json - 在其中配置架构文件路径、迁移路径/种子数据以及数据源URL。
Client middleware removed
客户端中间件已移除
- is removed.
prisma.$use(...) - Migrate middleware logic to Prisma Client Extensions.
- 已被移除。
prisma.$use(...) - 将中间件逻辑迁移到Prisma Client扩展。
Metrics removed from Client Extensions
客户端扩展中的指标功能已移除
- The Metrics preview feature is removed in v7.
- Use your database driver/adapter or implement custom counters via extensions.
- 指标预览功能在v7版本中已被移除。
- 使用数据库驱动/适配器或通过扩展实现自定义计数器。
Migrate/seed/generate behavior changes
迁移/种子数据/生成逻辑的行为变更
- Automatic seeding after /
prisma migrate devis removed.prisma migrate reset- Run seeding explicitly: (or
pnpm prisma db seed).pnpm exec prisma db seed
- Run seeding explicitly:
- and
--skip-generateflags removed.--skip-seed - and
prisma migrate devno longer runprisma db pushautomatically.prisma generate- Run (or
pnpm prisma generate) explicitly.pnpm exec prisma generate
- Run
- /
prisma migrate dev后自动执行种子数据的功能已被移除。prisma migrate reset- 需要显式运行种子数据:(或
pnpm prisma db seed)。pnpm exec prisma db seed
- 需要显式运行种子数据:
- 和
--skip-generate标志已被移除。--skip-seed - 和
prisma migrate dev不再自动运行prisma db push。prisma generate- 需要显式运行(或
pnpm prisma generate)。pnpm exec prisma generate
- 需要显式运行
Prisma-specific env vars removed
Prisma 专属环境变量已移除
- Removed env vars:
PRISMA_CLI_QUERY_ENGINE_TYPEPRISMA_CLIENT_ENGINE_TYPEPRISMA_QUERY_ENGINE_BINARYPRISMA_QUERY_ENGINE_LIBRARYPRISMA_GENERATE_SKIP_AUTOINSTALLPRISMA_SKIP_POSTINSTALL_GENERATEPRISMA_GENERATE_IN_POSTINSTALLPRISMA_GENERATE_DATAPROXYPRISMA_GENERATE_NO_ENGINEPRISMA_CLIENT_NO_RETRYPRISMA_MIGRATE_SKIP_GENERATEPRISMA_MIGRATE_SKIP_SEED
- 已移除的环境变量:
PRISMA_CLI_QUERY_ENGINE_TYPEPRISMA_CLIENT_ENGINE_TYPEPRISMA_QUERY_ENGINE_BINARYPRISMA_QUERY_ENGINE_LIBRARYPRISMA_GENERATE_SKIP_AUTOINSTALLPRISMA_SKIP_POSTINSTALL_GENERATEPRISMA_GENERATE_IN_POSTINSTALLPRISMA_GENERATE_DATAPROXYPRISMA_GENERATE_NO_ENGINEPRISMA_CLIENT_NO_RETRYPRISMA_MIGRATE_SKIP_GENERATEPRISMA_MIGRATE_SKIP_SEED
MongoDB support
MongoDB 支持
- Prisma ORM 7 does not support MongoDB yet; stay on Prisma ORM 6 if you need MongoDB.
- Prisma ORM 7 目前不支持MongoDB;如果需要MongoDB支持,请继续使用Prisma ORM 6。
Upgrade Checklist (quick)
快速升级检查清单
- Upgrade packages; confirm Node/TypeScript versions.
- Move to ESM (or adjust your runtime/build to consume ESM).
- Update generator to
schema.prismaand setprovider = "prisma-client".output - Run and update Prisma Client imports to the generated output path.
pnpm prisma generate - Add at repo root; move datasource config and load env explicitly.
prisma.config.ts - Update Prisma Client instantiation to use a driver adapter (unless using Accelerate).
- Update workflows: run and
pnpm prisma generateexplicitly.pnpm prisma db seed
- 升级包;确认Node/TypeScript版本符合要求。
- 迁移到ESM(或调整运行时/构建配置以支持ESM)。
- 更新中的生成器为
schema.prisma并设置provider = "prisma-client"字段。output - 运行并更新Prisma Client的导入路径至生成的输出目录。
pnpm prisma generate - 在仓库根目录添加;迁移数据源配置并显式加载环境变量。
prisma.config.ts - 更新Prisma Client实例化代码以使用驱动适配器(使用Accelerate的情况除外)。
- 更新工作流:显式运行和
pnpm prisma generate。pnpm prisma db seed