flyway 명령어 정리

  1. 다른 계정으로 flyway에 접속하여 수행
    • flyway -url=jdbc:mariadb://127.0.0.1:3306/aivapp -user=root -password=passwd -target=01.00 migrate
  2. flyway에서 관리된 sql 스크립트 목록 확인
    • flyway info
  3. sql 스크립트 수행
    • flyway migrate
  4. 특정 버전까지만 스크립트 수행
    • flyway -target=01.01 migrate
  5. 중간에 빠진 스크립트를 수행
    • flyway -target=01.01 -outOfOrder=false migrate
  6. sql 실행시 에러가 발생하여 Fail 난 것 초기화
    • flyway repair
Advertisements

[해결] flyway 한글 insert 실패 기록

테스트 삼아 윈도우 로컬에 mariadb 10.1.31 설치 후 flyway 4.2.0 버전으로 insert 수행시 아래와 같은 에러가 발생한다.

heidiSQL에서 직접 해당 sql 파일을 실행하면 잘됨

아래처럼 flyway (윈도우 버전) 을 사용하면 에러 남

—————————————————————————————————————————————-

D:\opensource\flyway-4.2.0>flyway migrate
Flyway 4.2.0 by Boxfuse

Database: jdbc:mysql://127.0.0.1:3306/aivapp (MySQL 10.1)
Current version of schema `aivapp`: << Empty Schema >>
Migrating schema `aivapp` to version 01.16 – aivapp
WARNING: DB: Table ‘tbl_dctnr_mgmt’ already exists (SQL State: 42S01 – Error Code: 1050)
ERROR: Migration of schema `aivapp` to version 01.16 – aivapp failed! Please restore backups and ro
code!
ERROR:
Migration V01_16__aivapp.sql failed
———————————–
SQL State : 22007
Error Code : 1366
Message : Incorrect string value: ‘\xF3\xBC\xBC\xBA\xEF\xBF…’ for column ‘lable_nm’ at row 242

[해결]

01.16 버전 sql 스크립트를 유니코드 UTF-8 로 변환하여 저장 하니 정상적으로 실행되었다.

단순한 문제였는데 한참 삽질하였다…

flyway 정리

flyway : db 스크립트를 git 으로 관리하면서 그 스크립트를 flyway 툴을 이용하면 손쉽게 db서버에 테이블 생성 및 데이터 삽입을 가능하게 하는 툴

 

중간에 0 ~ 5까지 flyway 로 넣고 6~ 11을 건너띄고 12번 스크립트를 넣고나서
6~11이 ignored 가 뜨는데 이를 해결하는 방법이 있는 페이지https://dzone.com/articles/flyway-20-out-order-migrations