티스토리 뷰
Prisma Migrate로 데이터베이스 스키마 관리하기
Prisma Migrate는 데이터베이스 스키마 변경을 안전하고 체계적으로 관리할 수 있도록 도와주는 도구입니다.
이 글에서는 Prisma Migrate를 활용하여 데이터베이스 테이블을 생성하고, 변경 사항을 안전하게 적용하는 방법을 소개합니다.
1. Prisma Migrate란?
Prisma Migrate는 Prisma에서 제공하는 자동 마이그레이션 시스템으로, 기존의 SQL 마이그레이션보다 다음과 같은 장점이 있습니다.
✅ 자동 마이그레이션 관리: 데이터베이스 변경 사항을 코드로 정의하고 자동 적용
✅ 버전 관리 지원: migrations/ 디렉터리를 통해 마이그레이션 히스토리 추적 가능
✅ 안전한 변경: 데이터 손실 없이 스키마를 업데이트하는 전략 제공
Prisma Migrate를 사용하면 데이터베이스를 직접 수정할 필요 없이 Prisma Schema를 기반으로 테이블을 업데이트할 수 있습니다.
2. Prisma Migrate 설정 및 초기화
Prisma Migrate를 사용하려면 프로젝트를 먼저 설정해야 합니다.
✅ Prisma 설치 (이미 설치했다면 건너뛰기)
npm install prisma --save-dev
npm install @prisma/client
이제 Prisma를 초기화합니다.
npx prisma init
👉 prisma/schema.prisma 파일이 생성되며, 기본 데이터베이스 연결이 .env 파일에 설정됩니다.
3. 데이터베이스 마이그레이션 생성 및 적용
✅ 3.1 Prisma Schema 모델 정의
prisma/schema.prisma 파일을 열어 다음과 같이 수정합니다.
model User {
id Int @id @default(autoincrement())
name String
email String @unique
createdAt DateTime @default(now())
}
- @id + @default(autoincrement()): 자동 증가하는 기본 키
- @unique: 이메일 필드는 중복될 수 없음
- @default(now()): 생성 날짜를 자동으로 저장
✅ 3.2 마이그레이션 파일 생성
npx prisma migrate dev --name init
✅ 실행 결과
- prisma/migrations/ 폴더가 생성되며, 마이그레이션 SQL 파일이 저장됨
- SQLite 또는 PostgreSQL 데이터베이스에 자동으로 테이블이 생성됨
4. Prisma Migrate를 활용한 스키마 변경
실제 프로젝트에서는 모델을 추가하거나 변경할 일이 많습니다.
이제 User 모델에 age 필드를 추가해보겠습니다.
✅ 4.1 Prisma Schema 수정
model User {
id Int @id @default(autoincrement())
name String
email String @unique
age Int? // 새로운 필드 추가 (nullable)
createdAt DateTime @default(now())
}
✅ 4.2 마이그레이션 생성
npx prisma migrate dev --name add_age_field
✅ 변경 사항
- Prisma가 새로운 마이그레이션을 생성하고 데이터베이스를 자동 업데이트
- 기존 데이터는 유지되며, 새로운 age 필드가 추가됨
5. 기존 데이터 유지하면서 컬럼 변경하기
실제 서비스에서 기존 데이터를 유지하면서 마이그레이션을 적용해야 할 경우
👉 Prisma Migrate는 안전한 변경 방식을 지원합니다.
예제: age 필드를 birthYear 필드로 변경
✅ 5.1 Prisma Schema 변경
model User {
id Int @id @default(autoincrement())
name String
email String @unique
birthYear Int? // 기존의 `age` 대신 `birthYear` 추가
createdAt DateTime @default(now())
}
✅ 5.2 마이그레이션 적용
npx prisma migrate dev --name change_age_to_birthYear
✅ 이전 age 필드는 삭제되고 birthYear로 대체됨
6. Prisma Studio로 변경 사항 확인하기
Prisma Studio를 사용하면 마이그레이션 후 데이터베이스의 구조를 쉽게 확인할 수 있습니다.
npx prisma studio
👉 브라우저에서 http://localhost:5555 로 접속하여 변경된 테이블을 확인하세요.
7. 마이그레이션 롤백 및 수정 방법
마이그레이션을 적용했지만 문제가 발생했을 경우, 롤백할 수도 있습니다.
✅ 7.1 가장 최근 마이그레이션을 롤백하는 방법
npx prisma migrate reset
⚠ 주의: reset 명령어는 모든 데이터를 삭제하고 마이그레이션을 다시 적용합니다.
⚠ 프로덕션 환경에서는 reset 대신 수동 마이그레이션을 사용하세요.
✅ 7.2 특정 마이그레이션 삭제 후 다시 적용하기
rm -rf prisma/migrations/{마이그레이션 폴더}
npx prisma migrate dev
👉 특정 마이그레이션을 제거하고 다시 생성하면 데이터 손실 없이 마이그레이션을 적용할 수 있습니다.
8. 결론
Prisma Migrate를 사용하면 데이터베이스 스키마를 효율적으로 관리하고 변경 사항을 안전하게 적용할 수 있습니다.
- 마이그레이션 생성: npx prisma migrate dev --name {이름}
- 스키마 변경: prisma/schema.prisma 수정 후 다시 마이그레이션
- 변경 사항 확인: npx prisma studio
- 롤백: npx prisma migrate reset
이제 Prisma Migrate를 활용하여 데이터베이스 구조를 손쉽게 업데이트하세요! 🚀
추천 태그
Prisma ORM,Prisma Migrate,Prisma 마이그레이션,Prisma 데이터베이스 관리,Node.js ORM,TypeScript Prisma,Prisma 스키마 변경,Prisma 테이블 수정,Prisma 롤백,Prisma Studio
'study > nodejs' 카테고리의 다른 글
Prisma 트랜잭션(Transaction) 활용법: 안전한 데이터 처리하기 (1) | 2025.03.14 |
---|---|
Prisma에서 관계형 데이터 모델링: 일대일, 일대다, 다대다 관계 구현 (0) | 2025.03.13 |
Prisma Client 활용법: 타입 안전한 CRUD 쿼리 작성하기 (0) | 2025.03.12 |
Prisma 시작하기: 설치부터 첫 번째 데이터베이스 연결까지 (0) | 2025.03.12 |
Prisma ORM 소개: 현대적인 데이터베이스 관리의 혁신 (0) | 2025.03.12 |
- Total
- Today
- Yesterday
- 파이썬알고리즘
- REACT
- llm
- Ktor
- PostgreSQL
- App Router
- fastapi
- kotlin
- Docker
- 백엔드개발
- nodejs
- SEO 최적화
- 딥러닝
- 개발블로그
- NestJS
- flax
- 프론트엔드면접
- rag
- Next.js
- gatsbyjs
- 웹개발
- Python
- SEO최적화
- nextJS
- CI/CD
- AI챗봇
- Prisma
- seo 최적화 10개
- JAX
- 프론트엔드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |