Prisma를 사용할 때는 DB에 테이블을 직접 모델링 하는 것이 아니라 schema.prisma라는 파일에 model들을 정의하고 정의된 모델을 바탕으로 DB의 스키마를 관리한다.
model users {
id Int @id @default(autoincrement())
email String @unique
password String @db.VarChar(52)
status String @default(ACTIVE)
created_at DateTime? @default(dbgenerated("NOW()")) @db.DateTime
updated_at DateTime? @default(dbgenerated("NOW() ON UPDATE NOW()")) @db.DateTime
deleted_at DateTime? @db.DateTime
@@index([status], name: 'status')
}
위와 같이 'model 모델명'의 형태로 모델을 선언하고 각 필드를 '필드명 타입 속성'의 형태로 작성한다. vsCode를 사용할 경우 prisma extension이 있으니 설치하면 작성이 훨씬 간편해진다.
@id 속성을 붙여줄 경우 PK로 설정이 되고 autoincrement, unique, db 타입, default 값 등을 설정할 수 있다. 저렇게 설정해주면 해당 타입으로 데이터를 받아온다. db 타입을 따로 설정해주지 않으면 String은 varchar(200)으로 생성된다. 타입 뒤에 '?'를 붙여주지 않으면 NotNull이 True로 생성된다.