我们很高兴地在 Prisma ORM 中引入一项新的预览功能:将您的 Prisma Schema 组织到多个文件中。了解如何在您的项目中实现此功能,探索最佳实践,并查看我们的示例项目以获取动手示例。
更新(2025年6月):此功能已在 v6.7.0 中正式发布。您现在无需再将其包含在
previewFeatures
中。在文档中了解更多信息。
一路走来不易,但随着 Prisma ORM 5.15.0 的发布,我们终于引入了在 Prisma Schema 中使用多个文件的功能。这旨在提高数据库模式的可管理性和组织性,使其更易于处理大型项目。作为我们最受期待的功能之一,我们希望您能试用 prismaSchemaFolder
预览功能,并在 GitHub 上告诉我们您的想法。您的持续反馈将帮助我们交付这样的功能!
多文件 Prisma Schema 预览功能包含什么
新的 prismaSchemaFolder
预览功能允许您在 prisma
目录的 schema
子目录中定义多个文件。Prisma 负责合并文件,让您可以在一个文件中定义模型,然后在其他 schema 文件中使用它,而无需导入。我们还更新了 Prisma Visual Studio Code 扩展,以处理多个 schema 文件,包括“跳转到定义”和存在性检查。
如何将您的 Prisma Schema 拆分为多个文件
首先,请确保 prisma
和 @prisma/client
已更新到至少 5.15.0。您还需要最新版本(5.15.0)的 Prisma VSCode 扩展,以便在您的 IDE 中利用这些更新。
要将您的 Prisma Schema 拆分为多个文件,首先,通过将 prismaSchemaFolder
预览功能包含在 generator
的 previewFeatures
字段中来启用它。
然后,在您的 prisma
目录下创建一个 schema
子目录。您可以将 schema.prisma
移动到此目录中。
现在,您可以在 schema
目录中创建更多文件了!所有模型都可以在所有文件中引用,因此关系可以跨文件,例如
运行 prisma generate
时,所有 schema 文件都会合并,因此您的工作流程将照常进行。其他 Prisma CLI 命令,例如 validate
和 format
也已更新,以支持多文件 Prisma Schema。
何时使用多文件 Schema
我们听说并看到,随着项目的增长,单文件 Prisma Schema 最终会变得过于庞大,难以有效管理。如果您满足以下条件,您将立即从该功能中受益:
- 拥有复杂 Schema:如果您的 Schema 包含大型模型或复杂关系,将相关模型放入单独的文件中可以帮助您的 Schema 更易于理解和导航。
- 拥有大型团队:当您只有一个 Prisma Schema 文件并且有许多开发人员提交代码时,您可能会在日常工作中遇到一些相当烦人的合并冲突。将大型 Schema 拆分为多个文件可以帮助减轻这种痛苦。
多文件 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 分支,这是我们最喜欢的开源项目之一!
期待您的反馈!
我们非常乐意听取您对这项新功能的看法。请在我们的专门 GitHub 讨论 中评论,分享您的反馈和遇到的任何问题。
不要错过下一篇文章!
订阅 Prisma 新闻通讯