跳至主要内容

模式位置

Prisma 模式的默认名称是您 `prisma` 文件夹中的单个文件 `schema.prisma`。当您的模式以这种方式命名时,Prisma CLI 将自动检测到它。

如果您正在使用 prismaSchemaFolder 预览功能,则 `prisma/schema` 目录中的任何文件都会被自动检测到。

Prisma 模式位置

Prisma CLI 在以下位置按以下顺序查找 Prisma 模式

  1. --schema 标志 指定的位置,在您执行 `introspect`、`generate`、`migrate` 和 `studio` 时可用

    prisma generate --schema=./alternative/schema.prisma
  2. 在 `package.json` 文件中指定的位置(版本 2.7.0 及更高版本)

    "prisma": {
    "schema": "db/schema.prisma"
    }
  3. 默认位置

    • ./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` 字段

schema.prisma
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 讨论