← 전체 글로 돌아가기

웹 개발

날짜 컬럼 마이그레이션이 깨졌을 때 복구하기

Prisma 마이그레이션 중 날짜 컬럼 타입을 바꿨는데 배포 후 데이터가 손상되었다. 안전하게 복구하고 마이그레이션을 다시 적용하는 방법을 정리했다.

DB 마이그레이션 중 날짜 타입을 변경하는 건 조심해야 한다. 기존 데이터가 손상될 수 있기 때문이다.

먼저 사용자가 본 모습 확인

날짜 관련 마이그레이션이 깨졌을 때는 사용자 화면에서 뭐가 보이는지 먼저 확인한다.

  • UI에서 날짜가 표시되나: 아니면 null이나 이상한 값이 보이나
  • 로그에는 뭐가 있나: 타입 변환 에러는 없나
  • 응답 데이터는 맞나: JSON에서 날짜가 제대로 직렬화되나

Prisma 마이그레이션 상태 확인

npx prisma validate
npx prisma migrate status

수정 전에 백업하기

마이그레이션을 다시 적용하기 전에 반드시 현재 데이터를 백업해야 한다. 실수해도 복구할 수 있게.

  1. 데이터 손상 정도를 파악한다
  2. 타입 변환 로직을 다시 설계한다
  3. 테스트 환경에서 먼저 시도한 후 프로덕션에 적용한다

복구 과정 기록하기

어떤 데이터가 손상되었고, 어떻게 복구했는지 남겨 두자. 다음에 참고할 수 있다.