Liquibase Migration을 내 성배 건물에 통합하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1804575

  •  05-07-2019
  •  | 
  •  

문제

여러 CSV 파일에서 종자 데이터를 데이터베이스에로드하기 위해 수동으로 실행하는 Liquibase 마이그레이션이 있습니다. 실행할 때 마다이 마이그레이션을 실행하고 싶습니다. grails run-app.

두 가지 질문이 있다고 생각합니다.

  1. 내가 통합하는 방법 migrate내 명령 grails run-app ?
  2. 어떻게 지우나요 DATABASECHANGELOG동일한 마이그레이션을 반복해서 실행할 수 있도록?

아니면 CSV 파일의 DB에 많은 데이터를로드하는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

질문 1- 마이그레이션 명령을 Run-App에 통합하려면 Run-App 스크립트에 발생한 이벤트를 들어야합니다. 이것은 설명됩니다 여기, 더 완전한 기사는입니다 여기.

질문 2- 데이터베이스를 지우려면 아마도 DB를 지우는 마이그레이션을 작성할 수 있습니까? 내가하는 방식은 내가 쓴 작은 스크립트를 사용하는 것입니다. MySQL을위한 것입니다 :

target(dropdb: "The description of the script goes here!") {
   def x = 'mysql -u root --password=XXXX -e "drop database yourdb; create database yourdb default character set utf8; " '.execute(); 
   x.waitFor()
    println "Exit Value ${x.exitValue()}"
}

setDefaultTarget(dropdb)

다른 팁

질문 #2 : 매번 실행하려는 특정 변경 사항이있는 경우 변경 사항 태그를 설정할 수있는 "AlwaysRun"속성이 있습니다.

내 돈을 위해 Liquibase Gant 대본을 읽고 그들이하는 일을 복제하는 것이 더 쉽습니다. 그들은 간단하고 무슨 일이 일어나고 있는지에 대한 통찰력이 더 많을 것입니다.

당신은 사용해야합니다 오토바스 플러그인. 응용 프로그램이 시작되면 마이그레이션이 실행됩니다.

XML ChangeLog에서 Groovy One으로 변환하는 스크립트가있어 수동으로 변환 할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top