1. npm i prisma 설치
2. npx prisma init 초기화
* 플러그인 prisma 다운
cmd + shift + p로 JSON settings 파일을 열고
"[prisma]": {
"editor.defaultFormatter": "Prisma.prisma"
}
추가하면 save시 릴레이션 자동완성 됩니다.
3. 기본 세팅 방법
향 후 외부 db를 사용하기 전에 연습용 로컬 db를 사용해보자.
.env 파일에 아래내용으로 수정 (gitignore파일에 .env, *.db, *.db-journal 추가)
schema.prisma 파일에 provider부분 수정 및 모델 생성
스키마에 모델 생성 후, npx prisma migrate dev 입력
*lib/db.ts
import { PrismaClient } from "@prisma/client";
const db = new PrismaClient();
export default db;
1) 프리즈마 클라이언트 연동
npx prisma studio로 화면 보기 가능
4. 데이터 삭제 시 고려 사항
*schema.prisma
1) 유저 모델이 부모고 SMSToken모델이 자식이다. 부모 모델을 삭제 할 때, 자식모델도 같이 삭제하려면 자식 모델에 onDelete: Cascade를 추가해주자. 아래 내용 참조
[Referential Actions]
Referential actions는 관련된 레코드가 삭제되거나 업데이트될 때 어떤 일이 발생하는지를 결정합니다. Prisma는 아래의 referential actions 종류를 지원합니다.
(onDelete 기준으로 설명합니다.)
Cascade: 참조 레코드를 삭제하면 참조 레코드의 삭제가 트리거됩니다.
Restrict: 참조 레코드가 있는 경우 삭제를 방지합니다.
NoAction: Restrict과 유사하지만 사용 중인 데이터베이스에 따라 다릅니다.
SetNull: 참조 필드가 NULL로 설정됩니다. (optional일 때만 정상 작동)
SetDefault: 참조 필드가 기본값으로 설정됩니다.
referential action을 설정 안했을 때 기본 동작 등 자세한 내용은 공식 문서에 나와있습니다.
https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/referential-actions
'코딩강의 > [풀스택]캐럿마켓 클론코딩(노마드코더)' 카테고리의 다른 글
#9 Social Authentication (0) | 2024.07.28 |
---|---|
#8 Authentication (0) | 2024.07.28 |
#6 Validation (0) | 2024.07.25 |
#5 SERVER ACTIONS (0) | 2024.07.18 |
#4 AUTHENTICATION UI (0) | 2024.07.17 |