概要
Prismaを使ったプロジェクトでは、テーブルが増えるにつれてschema.prisma
ファイルが肥大化し、管理が難しくなるときがあります。そんなときは、previewではありますが、prismaSchemaFolderを使えば解決するかもしれません。
設定方法
-
schema.prisma
のgenerator clientに下記の一行を追加してください
schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
+ previewFeatures = ["prismaSchemaFolder"]
}
- primsaディレクトリの下にサブディレクトリであるschemaを作成します
- schemaディレクトリで
schema.prisma
を作成します
これでschemaディレクトリに追加ファイルしても、自動でリレーションを貼れるようになります!
サンプル
prisma/schema
├── schema.prisma
+ ├── user.prisma
+ └── post.prisma
user.prisma
model User {
id Int @id @default(autoincrement())
name String
posts Post[]
}
post.prisma
model Post {
id Int @id @default(autoincrement())
title String
content String
authorId Int
author User @relation(fields: [authorId], references: [id])
}
prisma generateを実行するとすべてのスキーマファイルが結合されるためので、その後のワークフローも問題なく動くようです。
まとめ
モデル数が増えてきたりして分割して管理したいなぁって時に便利です。
preview機能ではありますが、有用な場面は多そうです。
小ネタ
プロジェクトでprisma-erd-generatorを使っているのですが、こちらも問題なく動作しました
参考