2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

schema.prismaが見づらいので分割したい

Posted at

概要

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を使っているのですが、こちらも問題なく動作しました

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?