웹 개발
날짜 컬럼 마이그레이션이 깨졌을 때 복구하기
Prisma 마이그레이션 중 날짜 컬럼 타입을 바꿨는데 배포 후 데이터가 손상되었다. 안전하게 복구하고 마이그레이션을 다시 적용하는 방법을 정리했다.
DB 마이그레이션 중 날짜 타입을 변경하는 건 조심해야 한다. 기존 데이터가 손상될 수 있기 때문이다.
먼저 사용자가 본 모습 확인
날짜 관련 마이그레이션이 깨졌을 때는 사용자 화면에서 뭐가 보이는지 먼저 확인한다.
- UI에서 날짜가 표시되나: 아니면 null이나 이상한 값이 보이나
- 로그에는 뭐가 있나: 타입 변환 에러는 없나
- 응답 데이터는 맞나: JSON에서 날짜가 제대로 직렬화되나
Prisma 마이그레이션 상태 확인
npx prisma validate
npx prisma migrate status
수정 전에 백업하기
마이그레이션을 다시 적용하기 전에 반드시 현재 데이터를 백업해야 한다. 실수해도 복구할 수 있게.
- 데이터 손상 정도를 파악한다
- 타입 변환 로직을 다시 설계한다
- 테스트 환경에서 먼저 시도한 후 프로덕션에 적용한다
복구 과정 기록하기
어떤 데이터가 손상되었고, 어떻게 복구했는지 남겨 두자. 다음에 참고할 수 있다.