Prisma의 개념
Prisma is an open source database toolkit that makes it easy for developers to reason about their data and how they access it,
by providing a clean and type-safe API for submitting database queries.
It mainly consists of three tools: Prisma Client: An auto-generated and type-safe query builder for Node.
- Clean and type-safe API for database queries
- DB Client, DB Connection, DB Schema
- RDB, MongoDB 지원
init
yarn add -D prisma
prisma init
commands
- prisma generate
- 로컬 환경에 prisma 클라이언트를 설치함
- prisma db push
- 초기 schema 설정 또는 dev 환경에서 사용하기 좋음. migration 히스토리를 남기지 않음.
- prisma migrate dev
- 운영 환경 스키마 개선 시에 사용. migration 히스토리를 남김.
- prisma studio
- supabase, phpmyadmin처럼 db schema를 바로 보고 관리할 수 있는 웹 콘솔을 띄워줌.
schema.prisma
- Database schema를 정의하는 기본 파일
- DB Connection, Client, RDB + MongoDB까지 높은 수준의 추상화를 제공함
- Connection 시 .env 파일을 통해서 간편하게 credential을 관리할 수 있음 (로컬 개발 이후 vercel, github secrets 기능들과 연동이 간편함)
Enum
열거형 데이터 타입을 사용할 수 있음
enum SignUpMethod {
EMAIL
GOOGLE
}
Schema 정의 함수 @
- @default 기본값을 정의함
- @updatedAt 업데이트 UTC 시간
- @relation 관계 선언
- @unique 유일값 선언
- @@unique([a, b]) 멀티컬럼 인덱스 선언
List Column
- String[]
이런 식으로 배열형 컬럼을 선언할 수 있음
Model
Relation
Prisma는 기본적인 Relation들을 모두 지원함
- One to One Relation
- One to Many Relation
- Many to Many Relation
- Self Relation