跳到主要内容

使用 Prisma ORM 部署边缘函数

您可以将使用 Prisma ORM 的应用程序部署到边缘。根据您使用的边缘函数提供商和数据库,有不同的注意事项和需要了解的事项。

以下是 Prisma ORM 当前支持的所有边缘函数提供商的简要概述

提供商 / 产品Prisma ORM 原生支持Prisma Postgres (和 Prisma Accelerate) 支持
Vercel Edge Functions✅ (预览版;仅兼容的驱动程序)
Vercel Edge Middleware✅ (预览版;仅兼容的驱动程序)
Cloudflare Workers✅ (预览版;仅兼容的驱动程序)
Cloudflare Pages✅ (预览版;仅兼容的驱动程序)
Deno Deploy尚未支持

在 Cloudflare 和 Vercel 上部署使用 Prisma ORM 的边缘函数目前处于预览版

数据库驱动程序的边缘兼容性

为什么边缘函数中的数据库驱动程序存在限制?

边缘函数通常不使用标准的 Node.js 运行时。例如,Vercel Edge Functions 和 Cloudflare Workers 在 V8 隔离环境中运行代码。Deno Deploy 使用 Deno JavaScript 运行时。因此,这些边缘函数只能访问标准 Node.js API 的一小部分,并且计算资源(CPU 和内存)也受到限制。

特别是,无法自由打开 TCP 连接的限制使得从边缘函数与传统数据库通信变得困难。尽管 Cloudflare 引入了 connect() API,支持有限的 TCP 连接,但这仍然只允许使用与该 API 兼容的特定数据库驱动程序进行数据库访问。

注意

我们建议使用Prisma Postgres。它在边缘运行时中得到完全支持,并且不需要专门的边缘兼容驱动程序。对于其他数据库,Prisma Accelerate 扩展了边缘兼容性,因此您可以从*任何*边缘函数提供商连接到*任何*数据库。

哪些数据库驱动程序是边缘兼容的?

以下是不同数据库驱动程序及其与不同边缘函数服务兼容性的概述

  • Neon Serverless 使用 HTTP 访问数据库。它与 Cloudflare Workers 和 Vercel Edge Functions 兼容。
  • PlanetScale Serverless 使用 HTTP 访问数据库。它与 Cloudflare Workers 和 Vercel Edge Functions 兼容。
  • node-postgres (pg) 使用 Cloudflare 的 connect() (TCP) 访问数据库。它仅兼容 Cloudflare Workers,不兼容 Vercel Edge Functions。
  • @libsql/client 用于访问 Turso 数据库。它与 Cloudflare Workers 和 Vercel Edge Functions 兼容。
  • Cloudflare D1 用于访问 D1 数据库。它仅兼容 Cloudflare Workers,不兼容 Vercel Edge Functions。
  • Prisma Postgres 用于访问基于裸机和 Unikernel 构建的 PostgreSQL 数据库。它同时支持 Cloudflare Workers 和 Vercel。

目前也在进行一项关于 node-mysql2 驱动程序的工作,未来也将使其能够从 Cloudflare Workers 和 Pages 访问传统的 MySQL 数据库

您可以使用相应的驱动程序适配器将所有这些驱动程序与 Prisma ORM 一起使用。

根据您使用的部署提供商和数据库/驱动程序,可能会有一些特殊考虑事项。请查阅您相应场景的部署文档,以确保您可以成功部署您的应用程序。

如果您想部署使用 Turso 的应用程序,请点击此处查看说明。

© . All rights reserved.