跳到主要內容

Prisma Accelerate 的本地開發

Prisma Accelerate 透過整合的連線池和全域性資料庫快取,高效地擴充套件生產流量。

在開發環境中,您可能希望使用本地資料庫以最大程度地降低開銷。此外,您可能考慮一次性使用 Accelerate 客戶端擴充套件來擴充套件 Prisma Client,這樣您就可以在開發中使用本地資料庫,並在生產中使用啟用了 Accelerate 連線池和快取的託管資料庫。這消除了在開發和生產之間切換客戶端的條件邏輯需求。

本指南將解釋如何在開發環境中使用 Prisma Accelerate 客戶端擴充套件和本地資料庫。

在開發和生產中使用 Prisma Accelerate 客戶端擴充套件


Using Prisma Accelerate client extension in development

Accelerate 不支援本地資料庫。然而,在開發環境中,您仍然可以使用帶 Accelerate 客戶端擴充套件的 Prisma Client。此設定將不提供 Accelerate 的連線池和快取功能。

以下步驟概述瞭如何將 Prisma ORM 和 Prisma Accelerate 與本地 PostgreSQL 資料庫一起使用。

  1. 使用本地資料庫的連線字串更新 DATABASE_URL 環境變數

    DATABASE_URL="postgres://username:password@127.0.0.1:5432/localdb"
  2. 生成 Prisma Client

    npx prisma generate

    注意:--no-engine 標誌僅應用於預覽和生產環境。該命令生成 Prisma Client Artifacts,但不包含 查詢引擎 檔案,該檔案需要一個 Accelerate 連線字串。

  3. 使用 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 查詢。

Using Prisma Accelerate client extension in production

如果 Accelerate 連線字串用作 DATABASE_URL 環境變數,Prisma Client 將透過 Accelerate 路由您的查詢。

在邊緣函式中本地使用 Prisma Accelerate

當在您的開發環境中使用邊緣函式時,例如 Vercel 的邊緣執行時,請按如下方式更新您的 Prisma Client 匯入

import { PrismaClient } from '@prisma/client/edge'

通常,邊緣函式環境缺乏對現有 API 的原生支援,這些 API 支援基於 TCP 的資料庫連線。Prisma Accelerate 提供了一個連線字串,允許您透過 HTTP(所有邊緣執行時都支援的協議)查詢資料庫。

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