[h2 database] dd.auto create 를 인식하지 못하는 오류

Ryu·2023년 2월 9일
0

데이터베이스

목록 보기
2/2

h2 database 를 사용하던 중, 동일한 코드를 두 번 실행할 때 항상 오류가 발생했다. 분명 ddl.auto 모드를 create 로 해두면, drop table 후 다시 create table 을 해주는 것으로 알고 있는데, 로그를 살펴보니 drop table 부분에서 에러가 발생하고 있었다.

문제). ddl.auto 를 create 로 설정 시 발생한 오류, 동일 코드 2번 실행할 때마다 drop table 에서 에러 발생.

Cannot drop table XXXX because other objects depend on it

  • 처음 에러 발생했을 때는, 외래키 제약으로 인한 drop table 이 안되는 것인 줄 알고 그냥 h2 database 에서 drop all objects 로 table 을 다 밀어버리는 방식으로 해결했다. (무식한 방식)

해결). h2 version 차이로 인한 문제.

  • 무슨 문제인지 몰라서 계속 헤매고, 데이터베이스를 잘 몰라서 발생한 문제라고 생각했는데, 생각보다 너무 간단하게 해결했다.
  • h2 database version 을 가장 latest 한 것을 쓰고 있어서, 199 버전으로 다운그레이드 했다.
  • gradle 이 아닌 maven 으로 연습하고 있어서, pom.xml 에서 수정해줘야 한다.
    • <version>1.4.199</version>
    • 다음은 실제 h2 사이트에서 다운 받은 버전이다. -> 다운 받으러 가기
profile
Strengthen the core.

0개의 댓글