이번에 사이드 프로젝트를 하면서 Flyway CLI를 설치하고 활용해보면서 그 방법을 정리합니다.
설치 도구로는 Homebrew를 사용했습니다.
1. "brew install flyway"를 실행하여 flyway를 설치합니다.
2. flyway에 연결할 DB 설정을 합니다.
flyway 명령어(Ex. flyway repair)를 실행하면 아마 아래와 같은 오류가 발생합니다. 이는 Flyway와 DB간 연결이 되지 않아 발생하는 문제입니다.

2-1) "brew --prefix flyway"를 실행하여 flyway 설치 위치를 알아내고 해당 폴더로 이동합니다.

2-2) 아마 이동하면 아래와 같은 디렉토리가 있을 텐데 libexec로 이동합니다. 그 후 conf 디렉토리로 이동합니다. ( "cd libexec/conf" )

2-3) 위치로 이동하면 "flyway.toml.example" 파일만 존재합니다. 이 파일을 복사하여 "flyway.toml" 파일을 만들어줍니다.
( "cp flyway.toml.example flyway.toml" )
그 후 vi 편집기를 활용하여 파일에 진입하면 설정 template을 볼 수 있습니다. (좌)( "vi flyway.toml" )
설정은 각자의 환경에 맞게 하면 되지만, 공식문서에 따르면 기본적인 설정은 아래와 같습니다. 따라서 자신의 상황에 맞게 수정합니다.
("~.example 파일에서는 "[environments.sample]"로 되어 있음으로 "[environments.default]"로 꼭 변경해주어야 합니다.) (우)


만약 프로젝트의 flyway sql들이 하나의 루트 디렉토리에 있는 것이 아닌 루트 디렉토리의 서브 디렉토리들에 위치한다면, locations 설정 시 "filesystem:{flyway sql들이 위치한 루트 디렉토리}"로 설정해주어야 합니다. ({flyway sql들이 위치한 루트 디렉토리} 자체를 치환)
이 명령어는 "filesystem:" 뒤에 오는 디렉토리부터 숨겨진 디렉토리를 제외한 하위 디렉토리들을 스캔하여 sql을 포함한다고 나와 있습니다.


3. flyway 명령어를 실행하면 초록색으로 완료된 것을 확인할 수 있습니다.

참고
https://documentation.red-gate.com/fd/quickstart-command-line-184127576.html
https://documentation.red-gate.com/fd/flyway-locations-setting-277579008.html