Prisma Accelerate 的本地开发
Prisma Accelerate 通过集成的连接池和全局数据库缓存高效地扩展生产流量。
在开发环境中,您可能希望使用本地数据库以最大程度地降低开销。此外,您可以考虑一次性使用 Accelerate 客户端扩展来扩展 Prisma Client,这样您就可以在开发中使用本地数据库,并在生产中使用 Accelerate 的连接池和缓存的主机数据库。这消除了在开发和生产之间切换客户端的条件逻辑的需要。
本指南将解释如何在开发环境中使用 Prisma Accelerate 客户端扩展和本地数据库。
在开发和生产中使用 Prisma Accelerate 客户端扩展

Accelerate 不适用于本地数据库。但是,在开发环境中,您仍然可以将 Prisma Client 与 Accelerate 客户端扩展一起使用。此设置将不提供 Accelerate 的连接池和缓存功能。
以下步骤概述了如何将 Prisma ORM 和 Prisma Accelerate 与本地 PostgreSQL 数据库一起使用。
-
使用本地数据库的连接字符串更新
DATABASE_URL环境变量DATABASE_URL="postgres://username:password@127.0.0.1:5432/localdb" -
生成 Prisma Client
npx prisma generate注意:
--no-engine标志只应在预览和生产环境中使用。该命令会生成 Prisma Client 工件,但没有 Query Engine 文件,这需要 Accelerate 连接字符串。 -
使用 Accelerate 客户端扩展设置 Prisma Client
import { PrismaClient } from '@prisma/client'
import { withAccelerate } from '@prisma/extension-accelerate'
const prisma = new PrismaClient().$extends(withAccelerate())Prisma Client 的扩展实例将使用本地数据库。因此,Prisma Accelerate 将不会在您的开发环境中用于响应您的 Prisma Client 查询。

如果 Accelerate 连接字符串用作 DATABASE_URL 环境变量,Prisma Client 将通过 Accelerate 路由您的查询。
在边缘函数中本地使用 Prisma Accelerate
在您的开发环境中使用边缘函数(例如 Vercel 的边缘运行时)时,请按如下方式更新您的 Prisma Client 导入
import { PrismaClient } from '@prisma/client/edge'
通常,边缘函数环境缺乏对启用基于 TCP 的数据库连接的现有 API 的原生支持。Prisma Accelerate 提供了一个连接字符串,允许通过 HTTP(所有边缘运行时都支持的协议)查询您的数据库。