Loading...
Loading...
Prisma ORM v6 升级至 v7 的完整迁移指南,涵盖所有重大变更。适用于升级 Prisma 版本、遇到 v7 相关错误或迁移现有项目的场景。触发关键词包括「升级到 prisma 7」、「prisma 7 迁移」、「prisma-client-js 切换至 prisma-client」、「需要驱动适配器」。
npx skill4agent add prisma/skills prisma-upgrade-v7prisma-client-jsprisma-clientprisma.config.ts# 更新包
npm install @prisma/client@7
npm install -D prisma@7
# 安装驱动适配器(PostgreSQL 示例)
npm install @prisma/adapter-pg
# 安装 dotenv 用于加载环境变量
npm install dotenv
# 重新生成客户端
npx prisma generate| 变更项 | v6 | v7 |
|---|---|---|
| 模块格式 | CommonJS | 仅支持 ESM |
| 生成器提供商 | | |
| 输出路径 | 自动(node_modules) | 需显式指定 |
| 驱动适配器 | 可选 | 强制要求 |
| 配置文件 | | |
| 环境变量加载 | 自动 | 手动(通过 dotenv) |
| 中间件 | | 客户端扩展(Client Extensions) |
| 指标功能 | 预览特性 | 已移除 |
rules/esm-support.md - ESM 模块配置
rules/schema-changes.md - 生成器与 schema 更新
rules/driver-adapters.md - 驱动适配器强制配置
rules/prisma-config.md - 全新配置文件
rules/env-variables.md - 环境变量加载
rules/client-imports.md - 导入路径更新
rules/removed-features.md - 已移除特性(中间件、指标、CLI 标志)
rules/accelerate-users.md - Accelerate 用户特殊处理
rules/ssl-certificates.md - SSL 验证变更{
"type": "module"
}{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"target": "ES2023",
"strict": true,
"esModuleInterop": true
}
}// 之前(v6)
generator client {
provider = "prisma-client-js"
}
// 之后(v7)
generator client {
provider = "prisma-client"
output = "../generated"
}import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
migrations: {
path: 'prisma/migrations',
},
datasource: {
url: env('DATABASE_URL'),
},
})# PostgreSQL
npm install @prisma/adapter-pg
# MySQL
npm install @prisma/adapter-mariadb mariadb
# SQLite
npm install @prisma/adapter-better-sqlite3
# Prisma Postgres
npm install @prisma/adapter-ppg @prisma/ppg
# Neon
npm install @prisma/adapter-neon// 之前(v6)
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
// 之后(v7)
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL
})
const prisma = new PrismaClient({ adapter })npx prisma generate
npx prisma migrate dev # 如有需要outputprisma generatessl: { rejectUnauthorized: false }