prisma-orm-v7-skills

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Links

链接

Upgrade

升级步骤

sh
undefined
sh
undefined

Upgrade packages

升级包

pnpm add @prisma/client@7 pnpm add -D prisma@7
undefined
pnpm add @prisma/client@7 pnpm add -D prisma@7
undefined

Breaking 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
    "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 ORM 以 ES 模块形式发布。
  • package.json
    中设置
    "type": "module"
    (或将项目迁移到ESM)。
  • TypeScript 项目必须编译/解析ESM(配置示例:
    module: ESNext
    ,
    target: ES2023
    ,
    moduleResolution: node
    )。

Prisma schema + generation changes

Prisma 架构文件与生成逻辑变更

  • 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
    .
  • 生成器提供方:
    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.config.ts
    (Prisma 配置文件)。
  • 如果之前使用
    directUrl
    进行迁移,请在
    prisma.config.ts
    中设置CLI迁移连接字符串。

Driver adapters required for Prisma Client (new instantiation)

Prisma Client 现在需要驱动适配器(新实例化方式)

  • 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 Client创建现在都需要驱动适配器。
  • 适配器示例:
    • Postgres:
      @prisma/adapter-pg
      (结合直接数据库连接字符串使用
      PrismaPg
    • SQLite:
      @prisma/adapter-better-sqlite3

Prisma Accelerate users (v6 → v7)

Prisma Accelerate 用户(从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.
  • 不要将
    prisma://
    prisma+postgres://
    (Accelerate URL)传递给驱动适配器。
  • 保留Accelerate URL,改用Accelerate扩展来实例化Prisma Client。

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 在v7版本中不再自动加载
    .env
    文件。
  • 需要显式加载环境变量(例如在
    prisma.config.ts
    中添加
    import 'dotenv/config'
    ,或在脚本中加载环境变量)。
  • Bun 用户:无需更改(Bun会自动加载
    .env
    )。

Prisma CLI config moved to
prisma.config.ts

Prisma CLI 配置迁移到
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.
  • Prisma 配置文件现在是配置Prisma CLI行为的默认位置。
  • prisma.config.ts
    放在项目根目录(与
    package.json
    同级)。
  • 在其中配置架构文件路径、迁移路径/种子数据以及数据源URL。

Client middleware removed

客户端中间件已移除

  • prisma.$use(...)
    is removed.
  • 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 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 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_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
  • 已移除的环境变量:
    • 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

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
    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.
  • 升级包;确认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