티스토리 뷰
728x90
반응형
ORM? SQL을 직접 사용하는 대신, JS를 통해 쿼리를 만들고, 실행하고 객체를 통해 DB에 접근할 수 있도록 도와주는 라이브러리
- Migration 파일들이 깃을 통해 같이 관리되어 나중에 테이블 변경사항을 한 눈에 보기 폏남
- 스키마 파일만 작성해도 테이블 자동 생성/반영되므로 개발하기 편리함
Prisma : 직관적으로 다양한 쿼리를 사용할 수 있는 ORM 라이브러리... 현재 가장 많이 사용되는 ORM 중 하나
- 깃허브 : GitHub - prisma/prisma: Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
- 공식문서 : Prisma | Simplify working and interacting with databases
// 설정 파일 만들기
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 |