개발환경이기는 하지만 그동안 테스트 했던 데이터를 유지한 상태에서 prisma의 migration 이력들을 하나로 합치고 싶었다.
BASH
# 모든 migration 삭제 후 현재 스키마 기준으로 새로 생성
npx prisma migrate reset
npx prisma migrate dev --name init
이걸 실행하면 되긴 하는데 데이터를 모두 삭제한다. 마이그레이션 이력만 합치는 건데 왜 데이터를 지우는지 모르겠다.
방법은 디비백업, 처리 후, 복원 방법이다.
BASH
# 1. 현재 데이터베이스 백업
pg_dump -U postgres harmoniav2 > backup.sql
# 2. Migration 폴더만 정리
rm -rf prisma/migrations/*
# 3. 현재 DB 스키마 기준으로 새 migration 생성
npx prisma db pull # 스키마 업데이트
npx prisma migrate dev --name baseline
# 4. 데이터베이스 복원 - 복원하기전 메모장 등을 이용해서
# _prisma_migrations 테이블의 데이터는 제거 후, 복원한다.
psql -h localhost -p 5432 -U postgres -d harmoniav2 < backup.sql