오늘은 flyway
랑 springboot
, jpa
를 연결하는 작업을 하고 있었다.
그동안은 ddl-auto
를 create
나 update
를 사용해서 개발을 진행해왔다.
그러다 보니, Constraint
들의 이름들이 랜덤한 텍스트가 들어가지 않도록, flyway
에 constraint
이름들을 알아보기 쉽게 정하고, 해당 설정들을 jpa
의 entity
클래스에도 명시하고자 한다.
resource/db/migration/V0_INIT_TABLE.sql
파일을 생성한다.create
또는 update
로 만들어진 schema 의 DDL 을 불러온다. (intelli J 에서 쉽게 가져올 수 있음)DDL
을 활용해, 파일을 작성한다.Constraint
의 naming 을 해준다.V0_INIT_TABLE.sql
에 적어진 설정들을 entity
클래스에도 반영해준다.ddl-auto
를 validation
으로 변경하고 springboot
를 실행해본다.안된다?
나 flyway
써봤는데...?
mariaDB
가 없었다.. (🤪 멍청 1스택)mariaDB
를 설치하고, mysql_secure_installation
을 했는데, 나와있는대로 이것저것 해보는데, 이젠, Unsupported Version mariadb@11
이란다.
flyway
공식홈페이지에 방문해봤더니, flyway team 인증은, @10.1
까지 이며, 현재 지원은 @10.10
까지 라고 되어있다.
이제는 mariadb
의 버젼을 낮춰보는 작업을 했다.
@10.0
, @10.1
을 설치하려고 했으나, mac m1 pro 에서 brew
로 search
해본 결과, @10.2
부터 있었다.
이런저런 시도 후, 로컬에 Mariadb git
레포를 받아 직접 빌드 후, 사용하는 방법을 해보려던 찰나,
공식홈페이지에서 Mariadb
에 대한 내용을 한번 더 훑어보기로 했다.
아니, 라이브러리가 변경되어 있었다. mysql8
과 mariadb@10
이상부터는 flyway-core
가 아닌, flyway-mysql
이라는 dependency 를 추가해야만 했다.
고치고 나니, mariadb@11
에서도 동작했다. 물론, 불안전한 버전이므로, 해당 문제는 해결해야할 것 같으나, 우선 넘어가기로 하자.
좋은 글 감사합니다. 자주 올게요 :)