티스토리 뷰

UMC - Node.js

6. ORM

염두리안 2025. 5. 7. 00:33
728x90
반응형

ORM? SQL을 직접 사용하는 대신, JS를 통해 쿼리를 만들고, 실행하고 객체를 통해 DB에 접근할 수 있도록 도와주는 라이브러리

  • Migration 파일들이 깃을 통해 같이 관리되어 나중에 테이블 변경사항을 한 눈에 보기 폏남
  • 스키마 파일만 작성해도 테이블 자동 생성/반영되므로 개발하기 편리함

 

Prisma : 직관적으로 다양한 쿼리를 사용할 수 있는 ORM 라이브러리... 현재 가장 많이 사용되는 ORM 중 하나

// 설정 파일 만들기
npm exec prisma init

하면 이렇게 파일이 생성된다.

  • datasource : Prisma ORM이 연결해야 되는 데이터 소스
  • generator : 데이터 모델을 기반으로 생성해야 하는 클라이언트 지정
  • 데이터 모델 정의 : 애플리케이션 모델과 해당 관계 지정

하고 나선 .env 파일도 상황에 맞게 하기~

// .env
DATABASE_URL="mysql://<DB_USER>:<DB_PASSWORD>@<DB_HOST>:<DB_PORT>/<DB_NAME>"
# ex. DATABASE_URL="mysql://root:password@localhost:3306/test"

 

 

Client 코드 만들기 : 스키마 파일을 수정한 후에는 제너레이트 한번씩 돌려야 함

npm exec prisma generate
  • 근데 까먹을 수 있으니... 노드몬을 다음과 같이 수정하면 코드 수정시 자동으로 클라이언트 코드를 생성하고, 서버도 재시작함
// package.json
"dev": "nodemon -e js,json,prisma --exec \"prisma generate && node src/index.js\""

 

ORM 적용하기 : Prisma의 Client 인스턴스는 한 번 생성하여 다른 코드 전체에서 공유해 사용

// src/db.config.js
import { PrismaClient } from "@prisma/client";
// 안되면 이런 식으로 파일 경로 수정
import { PrismaClient } from './generated/prisma/index.js';

export const prisma = new PrismaClient();
  • 실제 DB로 전송되는 SQL 쿼리 확인하기
// db.config.js
export const prisma = new PrismaClient({ log: ["query"] });

 

Prisma Migrate 도구

  • npm exec prisma migrate dev : 개발 과정에서 실행 | 스키마 파일을 수정하고, 도구 실행시 자동으로 DB에 변경 사항 반영하고, Migration 파일 생성
  • npm exec prisma migrate deploy : 나중에 한 번에 운영 환경에 데이터베이스 변경 사항을 적용할 때 실행하는 도구
// DB 초기화
npx prisma migrate reset

// 마이그레이션 파일 생성
npm exec prisma migrate dev

하고나면 요로코롬 마이그레이션 폴더가 생성된다.

 

728x90
반응형

'UMC - Node.js' 카테고리의 다른 글

7. Express 미들웨어 | 에러 핸들링  (0) 2025.05.16
5. API & 프로젝트 설정 기초  (0) 2025.05.04
4. ES6와 프로젝트 파일 구조의 이해  (0) 2025.04.10
3. API URL 설계  (0) 2025.04.02
2. 실전 SQL  (0) 2025.03.26
최근에 올라온 글
최근에 달린 댓글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total
Today
Yesterday
반응형