mcpField
P
prisma-orm-v7-skills

prisma-orm-v7-skills

github.com/gocallum开发231.0k 次安装40 周前更新
代码仓库

关于 prisma-orm-v7-skills

prisma-orm-v7-skills 是面向开发者和 Agent 的 Prisma ORM 7 升级参考技能,梳理了破坏性变更与迁移步骤,涵盖配置、客户端生成和数据库适配器。

主要功能

  1. 01Prisma 7 升级清单
  2. 02ESM 与版本要求
  3. 03Schema 和客户端生成变更
  4. 04Prisma Config 迁移说明
  5. 05数据库驱动适配器设置

适用场景

  1. 01规划从旧版 Prisma 升级
  2. 02更新生成器和客户端导入路径
  3. 03将数据源设置迁至 prisma.config.ts
  4. 04调整数据库客户端初始化方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gocallum/nextjs16-agent-skills --skill prisma-orm-v7-skills

安装后在 Claude Code 中输入/prisma-orm-v7-skills确认已加载。

详细介绍

链接

升级

# 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
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_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 支持
  • 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