关于 prisma-orm-v7-skills
prisma-orm-v7-skills 是面向开发者和 Agent 的 Prisma ORM 7 升级参考技能,梳理了破坏性变更与迁移步骤,涵盖配置、客户端生成和数据库适配器。
主要功能
- 01Prisma 7 升级清单
- 02ESM 与版本要求
- 03Schema 和客户端生成变更
- 04Prisma Config 迁移说明
- 05数据库驱动适配器设置
适用场景
- 01规划从旧版 Prisma 升级
- 02更新生成器和客户端导入路径
- 03将数据源设置迁至 prisma.config.ts
- 04调整数据库客户端初始化方式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gocallum/ nextjs16-agent-skills --skill prisma-orm-v7-skills安装后在 Claude Code 中输入/prisma-orm-v7-skills确认已加载。
详细介绍
链接
- 升级指南(v7):https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7
- Prisma Config 参考: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 packages
pnpm add @prisma/client@7
pnpm add -D prisma@7
重大变更(v7)
最低版本
- Node.js:20.19.0+(以及 22.x)
- TypeScript:5.4.0+
Prisma 现在使用 ESM
- Prisma ORM 以 ES 模块形式发布。
- 在
package.json中设置"type": "module"(或将项目迁移到 ESM)。 - TypeScript 项目必须能够编译/解析 ESM(指南示例:
module: ESNext、target: ES2023、moduleResolution: node)。
Prisma schema 和生成方式变更
- Generator provider:
prisma-client-js→prisma-client。 generator client中必须设置output。- Prisma Client 默认不再生成到
node_modules中。 - 执行
npx prisma generate后,将导入路径更新为生成的输出路径(示例:import { PrismaClient } from './generated/prisma/client')。
Schema datasource 弃用项:
schema.prisma中的url、directUrl、shadowDatabaseUrl已弃用。- 将 datasource 配置移至
prisma.config.ts(Prisma Config)。 - 如果迁移时使用了
directUrl,请在prisma.config.ts中设置 CLI 迁移连接字符串。
Prisma Client 现在需要驱动适配器(新实例化方式)
- 现在,所有数据库的 Prisma Client 创建都需要驱动适配器。
- 适配器示例:
- Postgres:
@prisma/adapter-pg(使用PrismaPg和直接数据库连接字符串) - SQLite:
@prisma/adapter-better-sqlite3
- Postgres:
Prisma Accelerate 用户(v6 → v7)
- 不要将
prisma://或prisma+postgres://(Accelerate URL)传给驱动适配器。 - 保留 Accelerate URL,并改用 Accelerate 扩展实例化 Prisma Client。
默认不再加载环境变量
- Prisma CLI 在 v7 中不再自动加载
.env文件。 - 请显式加载环境变量(例如,在
prisma.config.ts中执行import 'dotenv/config',或在脚本中加载环境变量)。 - Bun 用户:无需变更(Bun 会自动加载
.env)。
Prisma CLI 配置移至 prisma.config.ts
- Prisma Config 现在是配置 Prisma CLI 行为的默认位置。
- 将
prisma.config.ts放在项目根目录(与package.json同级)。 - 在其中配置 schema 路径、迁移路径/seed 和 datasource URL。
移除客户端中间件
- 已移除
prisma.$use(...)。 - 请将中间件逻辑迁移到 Prisma Client 扩展。
从 Client 扩展中移除 Metrics
- v7 中移除了 Metrics 预览功能。
- 请使用数据库驱动/适配器,或通过扩展实现自定义计数器。
Migrate/seed/generate 行为变更
- 执行
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 专用环境变量
- 已移除以下环境变量:
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 支持
- Prisma ORM 7 尚不支持 MongoDB;如果需要 MongoDB,请继续使用 Prisma ORM 6。
快速升级检查清单
- 升级软件包;确认 Node/TypeScript 版本。
- 迁移到 ESM(或调整运行时/构建配置以支持 ESM)。
- 将
schema.prisma中的生成器更新为provider = "prisma-client",并设置output。 - 运行
pnpm prisma generate,并将 Prisma Client 导入路径更新为生成的输出路径。 - 在仓库根目录添加
prisma.config.ts;迁移数据源配置并显式加载环境变量。 - 更新 Prisma Client 实例化方式,使用驱动适配器(除非使用 Accelerate)。
- 更新工作流:显式运行
pnpm prisma generate和pnpm prisma db seed。
评论
支持 Markdown