[TIL] Prisma

VonBielefeld·2023년 11월 30일
0

TIL

목록 보기
22/32

Prisma

ORM(Object Relational Mapping)의 하나의 일종으로 Javascript 객체(Object)를 데이터베이스의 관계(Relation)을 연결(Mapping) 해주는 역할을 합니다.

설치

npm i prisma @prisma/client
npx prisma init

실행시 생성되는 폴더 구조
내 프로젝트 폴더 이름
├── prisma
│   └── schema.prisma
├── .env
├── .gitignore
├── package.json
└── package-lock.json

schema.prisma

  • datasource
    • 데이터베이스에 대한 정의를 하기 위해 사용
    • Prisma가 사용하는 데이터베이스, 데이터베이스의 위치 등의 정보를 정의
  • generator
    • Prisma 클라이언트를 생성하는 방식을 설정하는 구문입니다

모델 생성방법

model Products {
  productId   Int     @id @default(autoincrement()) @map("productId")
  productName String  @unique @map("productName")
  price       Int     @default(1000) @map("price")
  info        String? @map("info") @db.Text

  createdAt DateTime @default(now()) @map("createdAt")
  updatedAt DateTime @updatedAt @map("updatedAt")

  @@map("Products")
}
컬럼의이름 | 컬럼의타입 | 컬럼의속성 | @map(JS에서 사용할 변수명)	

데이터 유형뒤에 ? 붙으면 null  허용
@@map("테이블명") JS사용할 테이블 명

Prisma 의 장단점

  • 장점
  1. SQL을 모르더라도 데이터베이스에 작업을 할 수 있다.

  2. 테이블의 수정 / 컬럼의 속성 변경을 편하게 할 수 있다.

  3. 다양한 데이터 베이스를 유사한 코드로 사용이 가능하다.

  • 단점
  1. 데이터베이스를 옮기기 편하지만 Prisma 제공하는 DB만 가능한다.

  2. 초기에 사용법에 대한 학습이 필요

  3. 직접 쿼리를 작성하는 것 보다 성능이 떨어 질 수 있다.

0개의 댓글