模式位置
Prisma 模式的默认名称是您 `prisma` 文件夹中的单个文件 `schema.prisma`。当您的模式以这种方式命名时,Prisma CLI 将自动检测到它。
如果您正在使用
prismaSchemaFolder
预览功能,则 `prisma/schema` 目录中的任何文件都会被自动检测到。
Prisma 模式位置
Prisma CLI 在以下位置按以下顺序查找 Prisma 模式
-
由
--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 输出将使用的模式的路径。以下示例显示了 `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 模式
多文件 Prisma 模式可通过 Prisma 5.15.0 及更高版本中的 `prismaSchemaFolder` 预览功能使用。
要使用多个 Prisma 模式文件,请在当前 `prisma` 目录中添加一个 `schema` 文件夹。启用 `prismaSchemaFolder` 预览功能后,您可以将任意数量的文件添加到 `prisma/schema` 目录中。
my-app/
├─ ...
├─ prisma/
│ ├─ schema/
│ │ ├─ post.prisma
│ │ ├─ schema.prisma
│ │ ├─ user.prisma
├─ ...
如何启用多文件 Prisma 模式支持
对多个 Prisma 模式文件的支持目前处于预览阶段。要启用此功能,请将 `prismaSchemaFolder` 功能标志添加到 Prisma 模式中 `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 模式文件一起使用
对于大多数 Prisma CLI 命令,无需进行任何更改即可使用多文件 Prisma 模式。仅在您需要通过选项提供模式的特定情况下,才需要更改命令。在这些情况下,只需将对文件的引用替换为目录。例如,以下 `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 模式的提示
我们发现一些模式与此功能配合良好,并将帮助您充分利用它
-
按领域组织文件:将相关的模型分组到同一个文件中。例如,将所有与用户相关的模型保存在 `user.prisma` 中,而与帖子相关的模型保存在 `post.prisma` 中。尽量避免出现“万事通”模式文件。
-
使用清晰的命名约定:模式文件应命名清晰简洁。使用诸如 `user.prisma` 和 `post.prisma` 之类的名称,而不是 `myModels.prisma` 或 `CommentFeaturesSchema.prisma`。
-
拥有一个明显的“主”模式文件:虽然您现在可以拥有任意数量的模式文件,但您仍然需要一个地方来定义 `datasource` 和 `generator` 块。我们建议使用一个显然是“主”文件的单个模式文件,以便于查找这些块。`main.prisma`、`schema.prisma` 和 `base.prisma` 是我们看到的一些效果很好的名称。
示例
我们对 dub.co 的 `dub` 的分支是一个很好的现实世界项目示例,该项目已改编为使用多文件 Prisma 模式。
详细了解 `prismaSchemaFolder` 预览功能
要提供有关 `prismaSchemaFolder` 预览功能的反馈,请参阅 我们专门的 Github 讨论。