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
datasource
generator
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사용할 테이블 명
SQL을 모르더라도 데이터베이스에 작업을 할 수 있다.
테이블의 수정 / 컬럼의 속성 변경을 편하게 할 수 있다.
다양한 데이터 베이스를 유사한 코드로 사용이 가능하다.
데이터베이스를 옮기기 편하지만 Prisma 제공하는 DB만 가능한다.
초기에 사용법에 대한 학습이 필요
직접 쿼리를 작성하는 것 보다 성능이 떨어 질 수 있다.