跳到主要內容

產生器

Prisma schema 可以有一個或多個產生器,以 generator 區塊表示

generator client {
provider = "prisma-client-js"
output = "./generated/prisma-client-js"
}

產生器決定當您執行 prisma generate 命令時建立哪些資產。主要屬性 provider 定義建立哪個 Prisma Client (特定語言) - 目前僅提供 prisma-client-js。或者,您可以定義任何符合我們產生器規格的 npm 套件。此外,您可以選擇性地使用 output 定義產生資產的自訂輸出資料夾。

Prisma Client: prisma-client-js

Prisma JavaScript Client 的產生器接受多個其他屬性

  • previewFeatures: 要包含的預覽功能
  • binaryTargets: prisma-client-js 的引擎二進位目標 (例如,如果您要部署到 Ubuntu 18+,則為 debian-openssl-1.1.x;如果您在本地端工作,則為 native)
generator client {
provider = "prisma-client-js"
previewFeatures = ["sample-preview-feature"]
binaryTargets = ["linux-musl"]
}

二進位目標

Prisma Client JS (prisma-client-js) 使用多個引擎。引擎以 Rust 實作,並以可執行、平台相依的引擎檔案形式由 Prisma Client 使用。根據您執行程式碼的平台,您需要正確的檔案。「二進位目標」用於定義目標平台應存在的檔案。

部署您的應用程式到生產環境時,正確的檔案尤其重要,生產環境通常與您的本地開發環境不同。

native 二進位目標

native 二進位目標很特別。它不對應到具體的作業系統。相反地,當 nativebinaryTargets 中指定時,Prisma Client 會偵測目前的作業系統,並自動為其指定正確的二進位目標。

舉例來說,假設您正在執行 macOS,並且您指定了以下產生器

generator client {
provider = "prisma-client-js"
binaryTargets = ["native"]
}

在這種情況下,Prisma Client 會偵測您的作業系統,並根據支援的作業系統列表找到適合它的二進位檔案。如果您使用 macOS Intel x86 (darwin),則會選取為 darwin 編譯的二進位檔案。如果您使用 macOS ARM64 (darwin-arm64),則會選取為 darwin-arm64 編譯的二進位檔案。

注意native 二進位目標是預設值。如果您希望包含其他二進位目標以部署到不同的環境,您可以明確設定它。

社群產生器

注意

如果您使用 prismaSchemaFolder 預覽功能來管理多個 schema 檔案,則現有的產生器或新的產生器不應受到影響,除非產生器手動讀取 schema。

以下是社群建立的產生器列表。