Prisma lifecycle

Prisma Client 주입 흐름

schema.prisma에 모델과 관계를 정의한 뒤 prisma generate로 클라이언트를 만들고, PrismaService가 애플리케이션 시작과 종료 시 연결을 관리한다.

schema

model User와 관계 정의

@id, @unique, @relation을 사용해 데이터베이스 구조와 타입의 원천을 한 파일에 둔다.

스키마 원본
env

DATABASE_URL

PostgreSQL, MySQL, MongoDB 연결 문자열은 환경 변수로 분리하고 Git에 포함하지 않는다.

설정 분리
client

npx prisma generate

스키마 기반 자동 완성과 타입 검사를 제공하는 @prisma/client 코드를 생성한다.

타입 안정성
service

PrismaService 수명주기

onModuleInit()에서 $connect(), 종료 시 $disconnect()를 호출해 연결을 명시한다.

NestJS DI
query

this.prisma.user.findMany()

서비스는 모델 이름으로 접근해 create, findUnique, update, delete를 타입 안전하게 호출한다.

서비스 로직