Prisma는 Javascript와 Typescript와 모두 호환되는 데이터베이스 툴킷입니다.
Prisma는 기존 ORM과 근본적으로 다르며 일반적인 ORM과 관련된 많은 문제를 겪지 않는 새로운 종류의 ORM입니다. - Prisma Document
Prisma는Prisma schema
를 통해 모델을 정의하고 정의한 모델에 맞는 쿼리를 자동으로 생성하는 쿼리 빌더인Prisma Client
를 통해 쿼리를 제공합니다.
Prisma는 오픈 소스 차세대 ORM으로 다음 세가지 중요한 부분으로 구성됩니다.
Prisma schema에서 아래 3가지를 설정할 수 있습니다.
schema.prisma에서 모델을 작성하고 migrate 과정을 통해 DB 테이블을 생성할 수 있습니다.
$ yarn prisma migrate save --name init --experimental
migrate save 명령어를 통해 migration 히스토리를 생성합니다.
$ yarn prisma migrate up --experimental
생성한 히스토리를 바탕으로 migrate up 을 통해 실제 DB의 테이블을 생성합니다.
데이터베이스에 접속하면 모델을 작성한대로 테이블과 _Migration 테이블이 생성된 것을 확인할 수 있습니다.
$ yarn prisma introspect
위 명령어로 Prisma에서 데이터 베이스 테이블을 불러 올 수 있습니다.
만약 Prisma CLI가 데이터 베이스를 검사하고 다른 부분이 있다면 Prisma schema를 업데이트 해줍니다.
$ yarn install @prisma/client
$ yarn prisma generate
데이터베이스 제어하는 명령어에 대해 알아보겠습니다.
Prisma로 데이터베이스를 제어하려면 제어할 prisma client가 필요합니다.
Prisma client를 설치하고 generate 명령어를 통해 Prisma schema를 읽고 node_modules/에 Prisma client를 생성합니다.
Prisma client를 이용해서 아주 쉽게 직관적으로 DB를 조작할 수 있습니다.
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default {
Query: {
allUsers: () =>
prisma.user.findMany({
include: {
posts: true,
},
}),
},
};
아주 간단하죠? 😊
Create
, Update
, Dlete
와 관련된 다양한 내용들은 공식 문서를 참고 부탁드립니다!
Prisma를 사용하면서 느낀 점은 개인적으로 공식문서가 깔끔하게 잘 정리되어있어 참고하고 배우기에 좋았습니다. 또한 개발하면서 자동 완성 기능이 아주 잘 만들어져 있었던 점 또한 인상 깊었습니다. 이러한 장점들로 인해 자연스럽게 생산성 또한 높아졌기 때문에 개발하는 단계에서 편했습니다. GraphQL을 공부하고 ORM을 고민하고 계신다면 한번 사용해 보시는 건 어떨까요? 😄
아직 Prisma를 공부하고 배우는 단계라 부족하기 때문에 잘못된 개념이 있을 수 있습니다. 잘못된 부분과 수정이 필요한 부분을 알려주시면 감사하겠습니다. 🤭
우와 정리가 너무 깔끔하세요..
연재 계속 하실까요?? +_+/