用途:这是 Prisma v7 升级中关于驱动适配器(Driver Adapters)的参考,用于把 Prisma 的数据库连接从内置 Rust 查询引擎改为驱动适配器。
主要变化:Prisma v7 要求所有数据库连接使用驱动适配器,取代原有的 Rust 查询引擎。其好处包括不再下载二进制文件、更小的打包体积、更好的 serverless/edge 兼容性、使用 Node.js 原生数据库驱动,以及对连接池有更多控制。
可用适配器:PostgreSQL 使用 @prisma/adapter-pg(底层 pg);MySQL/MariaDB 使用 @prisma/adapter-mariadb(mariadb);SQLite 使用 @prisma/adapter-better-sqlite3(better-sqlite3);Prisma Postgres 使用 @prisma/adapter-ppg(@prisma/ppg);SQL Server 使用 @prisma/adapter-mssql(mssql);Neon 使用 @prisma/adapter-neon(@neondatabase/serverless);PlanetScale 使用 @prisma/adapter-planetscale(@planetscale/database);Turso/libSQL 使用 @prisma/adapter-libsql(@libsql/client);Cloudflare D1 使用 @prisma/adapter-d1。
使用方式:先安装对应适配器包,例如 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,SQL Server 执行 npm install @prisma/adapter-mssql mssql。然后从生成的客户端导入 PrismaClient 和适配器类,创建 adapter 实例并通过 new PrismaClient({ adapter }) 传入。各数据库的配置参数不同,例如 PostgreSQL 用 connectionString,MariaDB 用 host/port/user/password/database 等,SQLite 用 url。文档还给出 Neon、Prisma Postgres、SQL Server 的配置示例。
连接池与 SSL:驱动适配器使用底层驱动自身的连接池设置,与 v6 默认值不同。PostgreSQL 可配置 max、idleTimeoutMillis、connectionTimeoutMillis(v6 默认超时为 5 秒,可用 connectionTimeoutMillis: 5000 匹配 v6 行为);SSL 可通过 rejectUnauthorized 或 ca 证书配置。
迁移与单例:文档展示 v6 使用 datasources 传 URL 的旧写法,以及 v7 改用 adapter 的新写法,并给出在 lib/prisma.ts 中使用 globalThis 的 PrismaClient 单例模式示例。
限制:上述内容基于该参考页面,未提供定价、平台支持范围或性能数据,这些暂未提供。