오늘은 flywayspringboot, jpa를 연결하는 작업을 하고 있었다.

그동안은 ddl-autocreateupdate 를 사용해서 개발을 진행해왔다.

그러다 보니, Constraint 들의 이름들이 랜덤한 텍스트가 들어가지 않도록, flywayconstraint 이름들을 알아보기 쉽게 정하고, 해당 설정들을 jpaentity 클래스에도 명시하고자 한다.

  1. resource/db/migration/V0_INIT_TABLE.sql 파일을 생성한다.
  2. create 또는 update 로 만들어진 schema 의 DDL 을 불러온다. (intelli J 에서 쉽게 가져올 수 있음)
  3. 불러온, DDL 을 활용해, 파일을 작성한다.
  4. Constraint 의 naming 을 해준다.
  5. V0_INIT_TABLE.sql 에 적어진 설정들을 entity 클래스에도 반영해준다.
  6. ddl-autovalidation 으로 변경하고 springboot 를 실행해본다.

!!!

안된다?

flyway 써봤는데...?

  1. 노트북을 개인 컴퓨터가 아닌, 회사 컴퓨터로 하고 있으니, mariaDB 가 없었다.. (🤪 멍청 1스택)
  2. mariaDB 를 설치하고, mysql_secure_installation 을 했는데, 나와있는대로

...

이것저것 해보는데, 이젠, Unsupported Version mariadb@11 이란다.
flyway 공식홈페이지에 방문해봤더니, flyway team 인증은, @10.1 까지 이며, 현재 지원은 @10.10 까지 라고 되어있다.

이제는 mariadb 의 버젼을 낮춰보는 작업을 했다.
@10.0, @10.1 을 설치하려고 했으나, mac m1 pro 에서 brewsearch 해본 결과, @10.2 부터 있었다.

...

이런저런 시도 후, 로컬에 Mariadb git 레포를 받아 직접 빌드 후, 사용하는 방법을 해보려던 찰나,

공식홈페이지에서 Mariadb 에 대한 내용을 한번 더 훑어보기로 했다.

... !!!!!!!!!!!!!!

아니, 라이브러리가 변경되어 있었다. mysql8mariadb@10 이상부터는 flyway-core 가 아닌, flyway-mysql 이라는 dependency 를 추가해야만 했다.

고치고 나니, mariadb@11 에서도 동작했다. 물론, 불안전한 버전이므로, 해당 문제는 해결해야할 것 같으나, 우선 넘어가기로 하자.

profile
Beyond

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 글 감사합니다. 자주 올게요 :)

답글 달기