(1)

[ORM] Prisma Multiple Schema File

개요지금까지 Prisma에서는 schema 파일을 분리하지 못하는 줄 알았다. 그런데 이번년도 6월 경에 Prisma 공식 사이트에서 schema 파일 분리가 가능하다는 공지가 나왔었다. 아무 생각없이 나는 schema.prisma 파일에 모든 테이블을 설계해서 코드를 작성하고 있었다. 심지어 Prisma-Markdown을 사용하여 ERD 시각화를 수행하고 있었는데 model 부분에 주석을 생성하면서 코드가 길어지면서 가시성이 떨어지는 것을 느꼈다. 그런데 갑자기 NestJS 카카오 오픈채팅방에서 다른 선배 개발자분들이 Prisma에서 schema 파일 분리가 가능해져서 좋아하시는게 확 떠올랐다. 그래서 생각난 김에 분리를 해봤는데 이게 뭐라고.... 이렇게 좋은지! 확실히 편하다고 느꼈다. 필자가 올려..

[ORM] Prisma Multiple Schema File

ORM 2024. 9. 5. 22:30

개요

지금까지 Prisma에서는 schema 파일을 분리하지 못하는 줄 알았다. 그런데 이번년도 6월 경에 Prisma 공식 사이트에서 schema 파일 분리가 가능하다는 공지가 나왔었다.

 

아무 생각없이 나는 schema.prisma 파일에 모든 테이블을 설계해서 코드를 작성하고 있었다. 심지어 Prisma-Markdown을 사용하여 ERD 시각화를 수행하고 있었는데 model 부분에 주석을 생성하면서 코드가 길어지면서 가시성이 떨어지는 것을 느꼈다.

 

그런데 갑자기 NestJS 카카오 오픈채팅방에서 다른 선배 개발자분들이 Prisma에서 schema 파일 분리가 가능해져서 좋아하시는게 확 떠올랐다. 그래서 생각난 김에 분리를 해봤는데 이게 뭐라고.... 이렇게 좋은지! 확실히 편하다고 느꼈다.

 

필자가 올려주는 사이트만 봐도 누구나 따라할 수 있는데 그래도 그냥 간단하게 작성해보려고 한다.

(prisma 기본 세팅이 되어있다고 가정한다)

1.  prismaSchemaFolder 활성화

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

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["prismaSchemaFolder"]   <<< 여기!
}

 

공식문서에서는 다중 파일로 분리를 하기 위해서는 generator 부분에 previewFeatures 필드에 prismaSchemaFolder를 활성화 시켜야한다고 한다.

2.  prisma 디렉토리에 서브 디렉토리 생성

 

위와 같이 prisma 디렉토리 밑에 schema 라는 이름의 서브디렉토리를 생성한다.

궁금해서 다른 이름의 디렉토리로 생성해봤는데 무조건 schema 라는 이름의 서브 디렉토리를 생성해야 한다.

3.  입맛에 맞게 스키마를 분리한다

필자는 위 사진처럼 도메인으로 크게 나눠 분리했다. 확실히 하나의 파일보다 여러 개의 파일로 분리해서 관리적인 측면에서도 좋아졌다고 느낀 것 같다.

 

실제로 필자가 작성한 schema 파일인데 이렇게 파일을 분리해서 Relation 설정해도 하나의 파일에서 작업하던 것처럼 동일한 환경에서 깔끔하게 소스코드를 작성할 수 있다. 그리고 아래 사진과 같이 Prisma-Markdown도 분리된 스키마를 인식하기 때문에 정상적으로 ERD를 그릴 수 있어서 좋다.

 

되게 간단한 내용의 블로그 글이었는데 오늘 오랜만에 블로그를 쓰고 싶다는 생각이 들었고 마침 쓸만한 소재가 하나 생긴 것 같아서 작성했다. 필자의 글을 보는 다른 개발자 분들도 schema를 하나의 파일에 모두 작성했었다면 이번 기회에 schema를 분리해서 더욱 편안한 환경에서 개발을 했으면 좋을 것 같다.

 

참고자료 

https://www.prisma.io/blog/organize-your-prisma-schema-with-multi-file-support

 

Organize your Prisma Schema into multiple files with Prisma ORM version 5.15.0

With Prisma ORM 5.15.0 you can now use multiple Prisma Schema files instead of just one. Learn how to enable this Preview feature and check out a real-world example.

www.prisma.io

https://github.com/samchon/prisma-markdown

 

GitHub - samchon/prisma-markdown: Markdown generator of Prisma, including ERD and descriptions

Markdown generator of Prisma, including ERD and descriptions - samchon/prisma-markdown

github.com

 

iamkanguk

iamkanguk

안녕하세요! 현재 NodeJS로 백엔드 취업을 희망하고 있는 이강욱이라고 합니다. 최대한 블로그 포스팅을 보시는 분들에게 자세한 정보와 즐거움을 드리기 위해 노력하며 포스팅을 쓰고 있습니다 ㅎㅎ 읽어보시고 문제가 있거나 잘못되었다고 생각되는 부분들은 언제든 댓글로 작성해주시면 최대한 빠르게 조치하겠습니다! 감사합니다.

방명록