0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

prismaのschemaファイルが長くなってきたので分割する

Posted at

本記事は「Multi-file Prisma Schema」の紹介記事です。

本機能はpreview機能となります。導入の検討は慎重にお願いします。

経緯

テーブルが増えてきてschema.prismaが何百行となってしまい、可読性が悪いなぁと感じるようになりました。schema.prismaをある程度のグループで管理できるようにしたいと方法を探していたら、preview機能を見つけました。

導入

prismaディレクトリにschemaディレクトリを作成します。
schemaディレクトリ内に、schema.prismaを移動します。

my-app/
├─ ...
├─ prisma/
│  ├─ schema/
│  │  ├─ schema.prisma
├─ ...

schema.prismaのclientに以下を追加します。

generator client {
  provider        = "prisma-client-js"
+  previewFeatures = ["prismaSchemaFolder"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

あとは、schema.prismaにあったテーブル定義を自由に分割してください。
公式だとこんな感じのファイル構成になっていました。

my-app/
├─ ...
├─ prisma/
│  ├─ schema/
│  │  ├─ post.prisma
│  │  ├─ schema.prisma
│  │  ├─ user.prisma
├─ ...

TIPS

prismaSchemaFolderを有効にしたら、migrationコマンドを見直しましょう。

prismaSchemaFolderを有効にしたら、schemaオプションに指定するのはschema.prismaではなく、schemaディレクトリになります。

- npx prisma migrate deploy --schema=./prisma/schema.prisma
+ npx prisma migrate deploy --schema=./prisma/schema

--schemaオプションをディレクトリに変更するのを忘れないようにしましょう

私はこれをせずに結構悩みました。(ドキュメントをちゃんと読むの大事)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?