[英]How to split Prisma Model into separate file?
我正在從視頻教程和官方文檔中學習 Prisma ORM。 它們在一個名為schema.prisma
的文件中解釋和編寫所有模型代碼。 沒關系,但是,當應用程序增長時,它變得混亂。 那么,我應該如何將我的模型定義分成單獨的文件?
Prisma 尚無法實現這一點。 有關可能的解決方法,請參閱此未決問題https://github.com/prisma/prisma/issues/2377 。
目前 Prisma 不支持文件分割。 不過,我可以推薦 3 個解決方案。
選項 1:Prismix
Prismix利用模型和枚舉通過 prismix 配置文件為您的 Prisma 模式創建文件之間的關系。
{
"mixers": [
{
"input": [
"base.prisma",
"./modules/auth/auth.prisma",
"./modules/posts/posts.prisma",
],
"output": "prisma/schema.prisma"
}
]
}
將其放在 prismix.config.json 文件中,該文件將定義您希望如何合並您的 Prisma 分段。
選項 2:方案
Schemaix利用 Typescript 配置來處理模式分段。
例如:
// _schema.ts
import { createSchema } from "schemix";
export const PrismaSchema = createSchema({
datasource: {
provider: "postgresql",
url: {
env: "DATABASE_URL"
},
},
generator: {
provider: "prisma-client-js",
},
});
export const UserModel = PrismaSchema.createModel("User");
import "./models/User.model";
PrismaSchema.export("./", "schema");
User.model 內部
// models/User.model.ts
import { UserModel, PostModel, PostTypeEnum } from "../_schema";
UserModel
.string("id", { id: true, default: { uuid: true } })
.int("registrantNumber", { default: { autoincrement: true } })
.boolean("isBanned", { default: false })
.relation("posts", PostModel, { list: true })
.raw('@@map("service_user")');
然后,這將生成包含完整架構的 prisma/schema.prisma。 我只使用了一個數據庫作為示例(取自文檔),但您應該明白這一點。
選項 3:貓 -> 生成
將您的模式分割成塊部分文件名並運行:
cat *.part.prisma > schema.prisma
yarn prisma generate
在有關支持 Prisma 模式文件分段https://github.com/prisma/prisma/issues/2377的當前 Open issue 中,如果不是全部,其中大部分都在此處引用
有一個名為 Prismix 的庫,它允許您編寫任意數量的模式文件,這里是鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.