← 전체 글로 돌아가기

DB

Prisma migration을 개인 프로젝트에서 안전하게 실행하기

개인 프로젝트는 복잡한 배포 프로세스 없이 로컬에서 바로 DB를 수정한다. 롤백 계획부터 세워야 한다.

개인 프로젝트에서는 배포 환경도 간단하고 데이터도 적으니까 마이그레이션을 대충 해도 된다고 생각하기 쉽다. 하지만 한 번 망치면 로컬 DB도 망가진다.

반드시 백업부터

# SQLite 경우
cp prisma/dev.db prisma/dev.db.backup.$(date +%s)

# PostgreSQL 경우
pg_dump dbname > backup_$(date +%Y%m%d_%H%M%S).sql

마이그레이션은 언제든 실패할 수 있다. Prisma가 자동 롤백을 못 할 때는 이 백업이 생명줄이다.

마이그레이션 전에 체크

# 1. 현재 상태 확인
npx prisma migrate status

# 2. 스키마 검증
npx prisma validate

# 3. 마이그레이션 파일이 올바르게 생성됐는지 보기
ls -la prisma/migrations/

마이그레이션 파일이 .sql로 되어 있고, 문법이 맞는지 눈으로 확인해야 한다.

단계적 마이그레이션

한 번에 여러 스키마 변경을 하면 뭐가 터졌는지 찾기 어렵다.

# 마이그레이션 실행
npx prisma migrate dev --name add_column_name

# 성공 여부를 로그와 실제 쿼리로 확인
# prisma/dev.db가 업데이트됐는지 보기

롤백이 필요하면

# 1. 최근 마이그레이션 취소 (Prisma 5.0+)
npx prisma migrate resolve --rolled-back <migration_name>

# 2. 백업에서 복구
rm prisma/dev.db
cp prisma/dev.db.backup prisma/dev.db

# 3. 마이그레이션 재실행
npx prisma migrate deploy

마이그레이션은 데이터베이스의 버전 관리다. 언제든 되돌릴 수 있도록 준비해야 한다.