[bugfix] Caused by: java.sql.SQLIntegrityConstraintViolationException at ProblemRepositoryTest.java:48

inho ha·2022년 10월 4일
0

bugfix

목록 보기
1/1

인천의 한 월요일
로컬에서는 모두 성공적이던 테스트가 서버에서는 실패했다.

많은 테스트중 2가지만 실패했다.
원인이 무엇일지 해당 에러를 구글링 해보았는데...
구글링 결과 데이터베이스 무결성 관련된 에러라고
제약조건을 위배 했을때 발생한다고...

추측 1 : problem entity의 column에 unique 제약조건 추가 문제

이전에 다른 테스트는 서버에서도 성공적으로 실행이 되었다.
이전과 달라진 점은 많지만 그 중에서도 이전에는 제약조건이 누락이 되어있었다.
이번 풀리퀘스트에 제약조건 추가도 함께 진행하여 이것이 원인이 아닌가 추측했다.
그러나 unique 제약조건을 추가한 column은 unique하게 생성하여 테스트를 진행하고 있어 문제가 없어 보였다.

혹시 모르니 해당 제약 조건을 제거 하고 커밋을 날려봤지만 그래도 결과는 동일했다.

추측 2 : dialect 문제

로컬에서는 잘 알아먹는걸 dialect 차이로 잘못 알아먹어서 발생한 문제인가??
dialect는 로컬과 서버가 동일하게 설정되어 있어 그럴일은 없을거라 생각하지만 혹시 몰라서 test/resources/application.yml에 dialect를 수정했다.

추가한 내용

    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5Dialect

그랬더니 테스트 성공...

굉장히 허무했지만 예상 못했던 원인이라 오랜 시간 고민했던 에러고
구글링을 통해 찾을 수 없었던 원인이라 같은 상황을 겪는 누군가에게 도움이 될 수 있도록 블로그에 작성했다.

profile
iha / ian / inho ha

0개의 댓글