跳到主要內容

設定 Neon 搭配 Accelerate 連線池

15 分鐘

簡介

本指南教您如何使用 Prisma Accelerate 將連線池新增到託管在 Neon 上的 PostgreSQL 資料庫。

Prisma Accelerate 是一個強大而成熟的連線池,可使您的資料庫在流量高峰和高負載場景下正常執行。觀看此影片,瞭解它在負載測試中的表現,或瞭解連線池為何重要

先決條件

要成功完成本指南,您需要一個託管在 Neon 上的 PostgreSQL 例項的連線字串。它通常看起來類似於這樣

postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require

如果您已有使用 Prisma ORM 的專案,可以跳過前兩個步驟,直接前往第 3 步:安裝 Accelerate 擴充套件

1. 設定 Prisma ORM

首先在您的專案中安裝 Prisma CLI

npm install prisma --save-dev

然後,執行以下命令來初始化一個新專案

npx prisma init

這將在您的專案中建立一個新的 prisma 目錄,其中包含 schema.prisma 檔案,並新增一個包含 DATABASE_URL 環境變數的 .env 檔案。

更新檔案並將 DATABASE_URL 設定為您的 Neon 連線字串

.env
DATABASE_URL="postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require"

2. 內省您的資料庫

接下來,執行以下命令來內省您的資料庫並建立資料模型

npx prisma db pull

此命令讀取您的資料庫模式,並在 schema.prisma 檔案中建立與資料庫表匹配的新模型。

注意

如果您將來想使用 Prisma Migrate,您還需要對資料庫進行基線化

3. 安裝 Accelerate 擴充套件

安裝用於 Accelerate 的 Prisma Client 擴充套件

npm install @prisma/extension-accelerate

這需要訪問 Prisma Accelerate 的連線池。

4. 在 Prisma 控制檯中設定 Accelerate

要在 Prisma 控制檯中設定 Accelerate,請按照以下步驟操作

  1. 登入.
  2. 選擇 新專案
  3. 為您的專案選擇一個名稱
  4. 選擇您的起始產品部分,找到 Accelerate 卡片並點選開始
  5. 在您的資料庫連線字串欄位中,貼上您的 Neon 連線字串
  6. 選擇離您的資料庫最近的區域
  7. 點選建立專案
  8. 在下一個螢幕上,點選啟用 Accelerate

完成這些步驟後,您將被重定向到另一個頁面,在該頁面上您需要點選生成 API 金鑰按鈕。

然後,您將看到一個新的連線 URL,它使您能夠連線到 Prisma Accelerate 的連線池。這需要被設定為您的 .env 檔案中的新 DATABASE_URL

.env
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..."
注意

如果您想將 Prisma Migrate 與 Prisma Accelerate 一起使用,可以在 datasource 塊上設定 directUrl 欄位

schema.prisma
datasource db {
url = env("DATABASE_URL") // points to the connection pool for queries
directUrl = env("DIRECT_URL") // points to the database for migrations
}

相應地,您需要在 .env 檔案中設定 DIRECT_URL

.env
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..."
DIRECT_URL="postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require"

5. 生成 Prisma Client

在您的 Prisma 模式就位後,您可以繼續生成 Prisma Client

npx prisma generate --no-engine

--no-engine 選項用於在生成的 Prisma Client 庫中省略查詢引擎。查詢引擎管理 Prisma ORM 的內部連線池,在使用 Prisma Accelerate 時不需要。

6. 透過連線池傳送查詢

在您的應用程式程式碼中,您現在需要將 Accelerate 擴充套件應用於您的 Prisma Client 例項

import { PrismaClient } from "./generated/prisma"
import { withAccelerate } from "@prisma/extension-accelerate"

const prisma = new PrismaClient().$extends(withAccelerate())

此時,您可以開始傳送查詢,這些查詢將透過連線池路由到您的資料庫。


與 Prisma 保持聯絡

透過以下方式,繼續您的 Prisma 之旅 我們的活躍社群。保持資訊暢通,積極參與,並與其他開發者協作

我們真誠地珍視您的參與,並期待您成為我們社群的一員!

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