跳到主要內容

使用 Prisma Postgres 進行本地開發

Prisma Postgres 是一種生產級、雲原生資料庫,非常適合暫存和生產環境。為了快速迭代和隔離測試,您可以透過 prisma dev 命令執行本地 Prisma Postgres 例項(由 PGlite 提供支援)。本頁介紹瞭如何安裝和啟動本地 Prisma Postgres 資料庫。

注意

本地 Prisma Postgres 處於預覽版,正在積極開發中。

為 Prisma Postgres 設定本地開發環境

請按照以下步驟設定 Prisma Postgres 的本地開發環境。

注意

請確保您正在執行 Node.js 20 或更高版本,這是本地 Prisma Postgres 所必需的。

1. 啟動本地 Prisma Postgres

進入您的專案並使用以下命令啟動本地 Prisma Postgres 伺服器

npx prisma dev

這將啟動一個本地 Prisma Postgres 伺服器,您可以使用 Prisma ORM 或其他工具連線到它。命令的輸出如下所示:

$ npx prisma dev
✔ Great Success! 😉👍

Your prisma dev server default is ready and listening on ports 63567-63569.

╭──────────────────────────────╮
│[q]uit [h]ttp url [t]cp urls│
╰──────────────────────────────╯

現在按

  • q 退出
  • h 檢視連線 URL,以便透過 Prisma ORM 進行連線
  • t 檢視連線 URL,以便透過 任何工具 進行連線

如果您想透過 Prisma ORM 連線,請按鍵盤上的 h,複製 DATABASE_URL 並將其儲存在您的 .env 檔案中。這將用於連線本地 Prisma Postgres 伺服器

.env
DATABASE_URL="prisma+postgres://:51213/?api_key=__API_KEY__"

DATABASE_URL 是 Prisma 用於連線本地 Prisma Postgres 伺服器的連線字串,並且與 Prisma Postgres 擴充套件 相容

import { withAccelerate } from '@prisma/extension-accelerate'

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

這確保了在從本地 Prisma Postgres 切換到生產環境中的 Prisma Postgres 時無需額外的程式碼更改。

在開發應用程式時,請保持本地 Prisma Postgres 伺服器在後臺執行。

2. 應用遷移和播種資料

然後在另一個終端標籤頁中,執行 prisma migrate dev 命令來建立資料庫並執行遷移

npx prisma migrate dev
注意

在執行 prisma migrate dev 命令之前,請確保本地 Prisma Postgres 伺服器正在執行。

如果您必須使用不同的埠,請附加 --port <number>(例如,npx prisma migrate dev --port 5422)並更新您的 DATABASE_URL(或其他連線設定)以匹配。

這將建立資料庫並執行遷移。

如果您有播種指令碼來播種資料庫,您也應該在此步驟中執行它。

3. 在本地執行您的應用程式

啟動您應用程式的開發伺服器。現在您可以使用 Prisma ORM 對本地 Prisma Postgres 例項執行查詢。

要過渡到生產環境,您只需在 .env 檔案中將資料庫 URL 更新為 Prisma Postgres 連線 URL,而無需額外更改應用程式邏輯。

使用不同的本地 Prisma Postgres 例項

您可以透過 prisma dev 命令的 --name (-n) 選項定位特定的本地 Prisma Postgres 例項,例如

npx prisma dev --name mydb1

每當您向 prisma dev 傳遞 --name mydb1 時,該命令將返回指向名為 mydb1 的本地例項的相同連線字串。

將本地 Prisma Postgres 與任何 ORM 配合使用

本地 Prisma Postgres 支援直接 TCP 連線,允許您透過任何工具連線到它。

為了連線到您的本地 Prisma Postgres 例項,請使用 prisma dev 返回的 postgres:// 連線字串。

透過 Prisma VS Code 擴充套件管理本地 Prisma Postgres 例項

Prisma VS Code 擴充套件 具有專門管理 Prisma Postgres 例項的 UI。

要使用它,請安裝 VS Code 擴充套件,並在 VS Code 編輯器的活動欄中找到 Prisma 徽標。它支援以下工作流程:

  • 建立和刪除資料庫
  • 啟動和停止特定資料庫的伺服器
  • "推送到雲端":將資料庫從本地移動到遠端

已知限制

本地模擬快取

Prisma Postgres 快取在本地進行模擬。查詢始終直接與本地 Prisma Postgres 例項互動,繞過快取配置

const users = await prisma.user.findMany({
cache: { ttl: 60 },
});

當您在暫存和生產環境中使用 Prisma Postgres 時,快取正常工作。

僅限單個連線

本地 Prisma Postgres 資料庫伺服器一次只接受一個連線。額外的連線嘗試會排隊,直到當前活動連線關閉。此限制足以滿足大多數本地開發和測試場景。

Prisma Postgres 限制適用於本地 Prisma Postgres 資料庫

所有 Prisma Postgres 限制也適用於 Prisma Postgres 的本地開發。有關詳細資訊,請參閱 Prisma Postgres 限制文件

無 HTTPS 連線

本地 Prisma Postgres 伺服器不使用 HTTPS。我們不建議自託管它。

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