Database Migration Pluginで毎回実行するchangelogを定義する
runAlways
属性をtrue
に設定することで毎回実行するchangelogを定義できます。runOnChange
属性がtrue
の場合ではchangesetのチェックサムが変更になった時のみ実行しますが、runAlways
属性をtrue
にするとチェックサム変更有無に関係なく毎回実行してくれます。
changeSet(author: "yamkazu", id: "create-dummy-data", runAlways: true, runOnChange: true) { sql("DELETE FROM person") sql(""" |INSERT INTO person ( id, version, name ) VALUES ( nextval('hibernate_sequence'), 0, 'tanaka' ); |INSERT INTO person ( id, version, name ) VALUES ( nextval('hibernate_sequence'), 0, 'sato' ); """.stripMargin()) }
リファレンスを読む限り
Executes the change set on every run, even if it has been run before
と記述されておりrunAlways
だけ付与すれば動くように読めますが現時点(Database Migration Plugin 1.3.2、Liquibase 2.0.5)ではrunOnChange
をtrueにしないとチェックサムのエラーになります。
こんな投稿を発見したが、いまいち直感的じゃない気がします。