跳至主要内容

使用 Prisma ORM 部署边缘函数

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

本页面回答的问题
  • 哪些数据库驱动程序在边缘环境下可用?
  • 驱动程序适配器如何影响连接?
  • 何时使用 Prisma Postgres 或 Accelerate?

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

提供商/产品Prisma ORM 原生支持支持 Prisma Postgres(和 Prisma Accelerate)
Vercel 边缘函数✅(预览版;仅限兼容驱动程序)
Vercel 边缘中间件✅(预览版;仅限兼容驱动程序)
Cloudflare Workers✅(预览版;仅限兼容驱动程序)
Cloudflare Pages✅(预览版;仅限兼容驱动程序)
Deno Deploy暂不支持

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

注意

如果 Prisma ORM 的 Rust 引擎二进制文件导致捆绑包大小过大、构建缓慢或部署问题(例如,在无服务器或边缘环境中),您可以在不使用它们的情况下使用它,只需配置您的 generator

generator client {
provider = "prisma-client-js" // or "prisma-client"
engineType = "client"
}

无需 Rust 二进制文件的 Prisma ORM 已于 v6.16.0正式发布

请注意,在这种情况下您需要使用驱动适配器

使用此架构时

  • 不会下载或附带 Rust 查询引擎二进制文件。
  • 数据库连接池由您安装的原生 JS 数据库驱动程序维护(例如,PostgreSQL 的 @prisma/adapter-pg)。

此设置可以简化以下场景的部署

  • 无服务器函数
  • 边缘运行时
  • 只读文件系统环境
  • 具有严格大小限制的 CI/CD 流水线

此设置可以简化无服务器或边缘运行时的部署。在此处文档中了解更多信息。

好奇我们为什么放弃 Rust 引擎?请查看这篇博客文章,了解我们为何从 Rust 二进制引擎转向全 TypeScript 方法,以实现更快、更轻的 Prisma ORM。

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

为什么边缘函数中对数据库驱动程序有限制?

边缘函数通常不使用标准的 Node.js 运行时。例如,Vercel 边缘函数和 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 边缘函数。
  • PlanetScale Serverless 使用 HTTP 访问数据库。它适用于 Cloudflare Workers 和 Vercel 边缘函数。
  • node-postgres (pg) 使用 Cloudflare 的 connect() (TCP) 访问数据库。它仅兼容 Cloudflare Workers,不兼容 Vercel 边缘函数。
  • @libsql/client 用于访问 Turso 数据库。它适用于 Cloudflare Workers 和 Vercel 边缘函数。
  • Cloudflare D1 用于访问 D1 数据库。它仅兼容 Cloudflare Workers,不兼容 Vercel 边缘函数。
  • Prisma Postgres 用于访问使用裸机微内核构建的 PostgreSQL 数据库。它在 Cloudflare Workers 和 Vercel 上都受支持。

node-mysql2 驱动程序也正在进行工作,未来也将能够从 Cloudflare Workers 和 Pages 访问传统的 MySQL 数据库。

您可以将所有这些驱动程序与 Prisma ORM 结合使用各自的驱动程序适配器

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

如果您想部署使用 Turso 的应用程序,您可以按照此处的说明进行操作。

© . This site is unofficial and not affiliated with Prisma Data, Inc.