Community程式設計與開發github.com

prisma/prisma-upgrade-v7

從 Prisma ORM v6 升級至 v7 的完整遷移指南,涵蓋所有重大變更。適用於升級 Prisma 版本、遇到 v7 錯誤或遷移現有專案時使用。觸發關鍵字:「升級至 Prisma 7」、「Prisma 7 遷移」、「Prisma-client 生成器」、「需要驅動轉接器」。

prisma-upgrade-v7 是什麼?

此技能提供從 Prisma ORM v6 到 v7 的完整遷移指南,涵蓋所有重大變更,包括 Prisma Client 生成器變更、驅動轉接器需求、以及 API 行為調整。支援所有使用 Prisma ORM 的平台(如 Node.js、TypeScript 專案),當開發者需要升級 Prisma 版本、遇到 v7 錯誤或遷移現有專案時,此技能會自動觸發。技能基於官方 Prisma v7 遷移文件,提供步驟式指引、程式碼範例和常見問題排除。它會解析專案中的 Prisma 設定檔、schema 和 package.json,偵測需要變更的項目,並產生對應的遷移指令和程式碼修改建議。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/prisma/skills/tree/main/skills/prisma-upgrade-v7

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

prisma-upgrade-v7 是做什麼的?

從 Prisma ORM v6 升級至 v7 的完整遷移指南,涵蓋所有重大變更。適用於升級 Prisma 版本、遇到 v7 錯誤或遷移現有專案時使用。觸發關鍵字:「升級至 Prisma 7」、「Prisma 7 遷移」、「Prisma-client 生成器」、「需要驅動轉接器」。

概述

Prisma ORM v7 引入了多項重大變更,主要影響包括:

  • Prisma Client 生成器:prisma-client 生成器已被取代,需使用 @prisma/generator-client。
  • 驅動轉接器:現在強制要求使用驅動轉接器,以支援不同資料庫。
  • API 行為調整:部分查詢和寫入 API 的行為有所變更。

遷移步驟

1. 更新 Prisma CLI 和客戶端

首先更新 prisma 和 @prisma/client 至 v7:

npm install prisma@latest @prisma/client@latest

2. 變更 Prisma Client 生成器

在 schema.prisma 中將生成器從 prisma-client 改為 @prisma/generator-client:

generator client {
  provider = "@prisma/generator-client"
}

3. 設定驅動轉接器

Prisma v7 要求明確指定驅動轉接器。根據您的資料庫選擇:

  • PostgreSQL:使用 @prisma/adapter-pg
  • MySQL:使用 @prisma/adapter-mysql
  • SQLite:使用 @prisma/adapter-sqlite

範例安裝:

npm install @prisma/adapter-pg

然後在 schema.prisma 中指定:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  adapter  = "@prisma/adapter-pg"
}

4. 生成 Prisma Client

執行生成命令:

npx prisma generate

5. 更新應用程式程式碼

檢查所有 Prisma Client 的使用位置,特別注意:

  • 查詢結果的型別可能已變更。
  • 部分方法名稱或參數已調整。
  • 驅動轉接器需要初始化並傳遞至 Prisma Client。

範例更新:

import { PrismaClient } from '@prisma/client'
import { pg } from '@prisma/adapter-pg'

const adapter = new pg()
const prisma = new PrismaClient({ adapter })

常見問題

Q: 為什麼需要驅動轉接器?

A: Prisma v7 將資料庫連接抽象化,以便支援更多資料庫和更靈活的連接管理。驅動轉接器是必需的。

Q: 我的專案中有多個 Prisma Client 生成器,該如何處理?

A: 所有生成器都必須更新為 @prisma/generator-client。

Q: 遷移後效能會受影響嗎?

A: 通常不會,但建議使用最新版本的驅動轉接器以獲得最佳效能。

參考資源

注意事項

  • 務必在升級前備份資料庫。
  • 檢查專案中是否有任何第三方套件相依於 Prisma v6,並確認它們是否相容於 v7。
  • 升級完成後執行完整的測試套件,以確保一切正常運作。

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

prisma/prisma-cli

Prisma ORM CLI commands reference covering init, generate, migrate, db, dev, studio, validate, format, debug, and mcp. Use for ORM/database CLI workflows, not Prisma Compute app deployment. For Prisma Compute, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, apps, deployments, logs, or domains, use the `prisma-compute` skill instead. Triggers on "prisma init", "prisma generate", "prisma migrate", "prisma db", "prisma studio", "prisma mcp".

prisma/prisma-client-api

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

prisma/prisma-compute

Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, Compute auth/workspaces, apps/deployments/build logs/domains, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte, Nest, Turborepo, or custom/prebuilt artifacts.

prisma/prisma-database-setup

Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".

prisma/prisma-driver-adapter-implementation

Required reference for Prisma v7 driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter/Transaction interfaces. Contains critical contract details not inferable from code examples — including the transaction lifecycle protocol, error mapping requirements, and verification checklist. Existing implementations do not replace this skill.

prisma/prisma-mongodb-upgrade

Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7. Use when a MongoDB project asks about upgrading Prisma, when "upgrade to prisma 7" comes up in a project with provider = "mongodb", or when evaluating a move to Prisma Next. Triggers on "upgrade prisma mongodb", "prisma 7 mongodb", "mongodb prisma migration", "prisma next mongodb".

prisma/prisma-postgres

Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

prisma/prisma-postgres-setup

Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to "set up a database", "create a Prisma Postgres project", "get a connection string", "connect my app to Prisma Postgres", or "provision a database".

相關技能