跳到主要內容

使用 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 的應用程式,請點選此處檢視說明。

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