Schema 位置
Prisma Schema 的預設名稱是 prisma
資料夾中的單一檔案 schema.prisma
。當您的 schema 如此命名時,Prisma CLI 將會自動偵測到它。
如果您正在使用
prismaSchemaFolder
預覽功能,則prisma/schema
目錄中的任何檔案都會自動偵測到。
Prisma Schema 位置
Prisma CLI 會依以下順序在以下位置尋找 Prisma Schema
-
由
--schema
旗標 指定的位置,此旗標在您執行introspect
、generate
、migrate
和studio
時可用prisma generate --schema=./alternative/schema.prisma
-
在
package.json
檔案中指定的位置 (版本 2.7.0 及更高版本)"prisma": {
"schema": "db/schema.prisma"
} -
預設位置
./prisma/schema.prisma
./schema.prisma
Prisma CLI 輸出將使用的 schema 路徑。以下範例顯示 prisma db pull
的終端機輸出
Environment variables loaded from .env
Prisma Schema loaded from prisma/schema.prisma
Introspecting based on datasource defined in prisma/schema.prisma …
✔ Introspected 4 models and wrote them into prisma/schema.prisma in 239ms
Run prisma generate to generate Prisma Client.
多檔案 Prisma Schema
多檔案 Prisma Schema 可透過 Prisma 5.15.0 及更高版本中的 prismaSchemaFolder
預覽功能取得。
若要使用多個 Prisma Schema 檔案,請在您目前的 prisma
目錄中新增一個 schema
資料夾。啟用 prismaSchemaFolder
預覽功能後,您可以將任意數量的檔案新增至 prisma/schema
目錄。
my-app/
├─ ...
├─ prisma/
│ ├─ schema/
│ │ ├─ post.prisma
│ │ ├─ schema.prisma
│ │ ├─ user.prisma
├─ ...
如何啟用多檔案 Prisma schema 支援
對多個 Prisma Schema 檔案的支援目前為預覽狀態。若要啟用此功能,請將 prismaSchemaFolder
功能旗標新增至您 Prisma Schema 中 generator
區塊的 previewFeatures
欄位
generator client {
provider = "prisma-client-js"
previewFeatures = ["prismaSchemaFolder"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
首次更新至 Prisma ORM 5.15.0 或更高版本時,您的 IDE 可能不會立即識別新的多檔案格式。請務必重新啟動您的 IDE 以確認您已安裝最新版本的 Prisma VS Code 擴充功能。
如何將現有的 Prisma CLI 命令與多個 Prisma schema 檔案搭配使用
對於大多數 Prisma CLI 命令,無需進行任何變更即可使用多檔案 Prisma schema。只有在需要透過選項提供 schema 的特定情況下,才需要變更命令。在這些情況下,只需將對檔案的參照替換為目錄即可。例如,以下 prisma db push
命令
npx prisma db push --schema custom/path/to/my/schema.prisma
變為以下命令
npx prisma db push --schema custom/path/to/my/schema # note this is now a directory!
多檔案 Prisma Schema 的提示
我們發現以下幾種模式在此功能中運作良好,並且將幫助您充分利用它
-
依領域組織您的檔案:將相關的模型分組到同一個檔案中。例如,將所有使用者相關的模型保留在
user.prisma
中,而將貼文相關的模型放在post.prisma
中。盡量避免使用「廚房水槽」schema 檔案。 -
使用清晰的命名慣例:schema 檔案的命名應清晰簡潔。使用諸如
user.prisma
和post.prisma
之類的名稱,而不是myModels.prisma
或CommentFeaturesSchema.prisma
。 -
擁有一個明顯的「主要」schema 檔案:雖然您現在可以擁有任意數量的 schema 檔案,但您仍然需要一個位置來定義
datasource
和generator
區塊。我們建議您擁有一個明顯是「主要」檔案的單一 schema 檔案,以便可以輕鬆找到這些區塊。我們看到一些運作良好的名稱,例如main.prisma
、schema.prisma
和base.prisma
。
範例
我們 dub.co 的 dub
的分支是一個真實世界專案的絕佳範例,該專案已改編為使用多檔案 Prisma Schema。
深入了解 prismaSchemaFolder
預覽功能
若要提供關於 prismaSchemaFolder
預覽功能的意見回饋,請參閱 我們專門的 Github 討論。