本地开发
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:[email protected]:5432/localdb"
-
生成 Prisma Client
npx prisma generate
注意:
--no-engine
标志仅应在预览和生产环境中使用。该命令会生成 Prisma Client 构件,但没有 查询引擎 文件,这需要 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'
通常,边缘函数环境缺乏对现有 API 的本机支持,这些 API 使能基于 TCP 的数据库连接。Prisma Accelerate 提供一个连接字符串,允许您通过 HTTP 查询您的数据库,HTTP 是所有边缘运行时中都支持的协议。