웹 개발
데이터베이스 unique 제약 때문에 에러가 날 때
마이그레이션 후 unique 제약이 걸려서 데이터 추가가 실패한다. 원본 데이터를 검사하고 제약을 적용하는 안전한 순서를 정리했다.
검색을 통해 발견한 unique 제약 문제는 보통 마이그레이션 단계에서 터진다. 기존 데이터에 중복이 있으면 제약을 적용할 수 없다.
상황 파악이 먼저
unique 제약 때문에 마이그레이션이 실패했다면, 먼저 현재 데이터 상태를 봐야 한다.
- 어떤 컬럼에 중복이 있나: 정확히 뭐가 겹쳤는지
- 얼마나 많은 행이 영향을 받나: 몇 개 고치면 되는 건지
- 이전에 운영한 로직은 뭐였나: 왜 중복이 들어갔는지
빌드와 검증
먼저 빌드가 되는지 확인하자.
npm run build
해결 방법 정하기
중복을 제거하는 여러 방법이 있다. 데이터 손실을 최소화하면서 가장 안전한 방법을 선택해야 한다.
- 데이터에 어떤 중복이 있는지 정확히 파악한다
- 중복을 제거하는 방법을 정한다 (이전 데이터 우선, 최신 데이터 우선 등)
- 제약을 적용한 후 실제로 제대로 되는지 본다
기록해 두기
어떤 데이터가 어떻게 영향을 받았는지 남겨 두자. 비슷한 문제가 다시 생길 때 참고할 수 있다.