Prisma는 오픈소스 ORM 프로젝트로 아래와 같은 하위 항목들로 구성됨Prisma Client: node.js용 쿼리 빌더Prisma Migrate: 마이그레이션 시스템Prisma Studio: Primsa로 작성된 DB를 편집하는 GUI (오픈소스 아님)Prism
다음의 단계에 따라 Prisma Client 사용 가능컴퓨터에 Prisma CLI 설치Prisma schema에 다음과 같이 generator 생성npm install @prisma/client으로 Prisma Client 설치이후 prisma generate 커맨드
다음의 스키마가 이미 작성되었다는 가정하에 아래 문서가 진행된다.prisma에 정의된 스키마에 맞게 prisma.model.create를 사용해 레코드를 생성함객체를 전달하기만 하면 되기 때문에 상황에 따라 분기 처리를 해줄수도 있음prisma.model.createM
아무런 옵션을 주지 않은 경우 기본적으로 모든 필드값을 반환함옵션으로 select를 주면 특정한 필드 값만을 가져올 수 있음select를 중첩으로 사용하거나, include 옵션 내부에 select를 사용하면 됨출처:https://www.prisma.io/do
Prisma에서는 데이터베이스의 여러 테이블에서 관련된 정보를 한번에 가져오는 기능을 지원함include 옵션은 쿼리 응답에 join되는 테이블의 일부 필드를 포함해줄 수 있게 함select를 중첩해서 relation field의 특정 값을 가져올 수 있게 함가령 in
NOT, OR과 같은 연산자들을 조합해 쿼리에 제약조건을 걸어 결과를 필터링 할 수 있음null을 사용해 값이 비어있는 데이터를 필터링 할 수 있음{not : null}을 사용하면 null이 아닌 게시글을 반환하게도 할 수 있음관련 레코드의 데이터 값을 기준으로도 데이
소수를 입력하고 저장할 때는 Prisma.Decimal 자료형을 사용자바스크립트에 내장된 BigInt를 사용하면 됨만약 Prisma에서 받아온 객체에 BigInt가 포함된 경우, JSON.stringify를 다음과 같이 진행해야함출처:https://www.pr
타입스크립트를 사용시 모델을 바탕으로 한 타입을 생성할 수 있음기존의 모델 이름 뒤에 select, include를 사용해 타입을 생성할 수 있으며, 생성된 타입을 통해 Prisma 객체에서 점 표현법을 통해 자동으로 생성된 타입을 가져올 수 있음출처:https
aggregate 메서드를 사용해 데이터 테이블 값의 합, 차, 평균, 최대, 최소를 구할 수 있음https://www.prisma.io/docs/concepts/components/prisma-client/aggregation-grouping-summariz
트랜젝션이란 전체가 실패하거나 성공한다는 보장이 있는 연속된 읽기, 쓰기 작업을 의미함쓰기 작업이 여러 필드에 걸쳐서 진행되는 작업이거나, updateMany와 같이 여러개의 데이터를 동시에 생성하는 경우, 또는 $transaction 명령어를 사용해 작업하는 경우 트