フライウェイプラグインを使用していくつかのデータベーステーブルを作成するGradleスクリプトがあります。このスクリプトは2つの別々のフライウェイスクリプトセットで動作するように更新する必要があります。別のデータベースを更新します。スクリプトの単一データベースのバージョンで複数のデータベースを更新するためのフライウェイトスクリプト
私は単純に次の操作を行います。
task flywayMigrate2 << {
ext {
flyway {
url = 'jdbc:edb://localhost:5432/mydb2'
schemas = ['my_schema2']
user = 'my_user2'
password = 'my_pass2'
locations = ['filesystem:src/main/resources/db/flyway/my_db2']
}
}
}
flywayMigrate2.finalizedBy flywayMigrate
:私は2番目のDBのためのスクリプトを実行する新しいタスクを宣言して実験してきた
flyway {
url = 'jdbc:edb://localhost:5432/mydb'
schemas = ['my_schema']
user = 'my_user'
password = 'my_pass'
locations = ['filesystem:src/main/resources/db/flyway/my_db']
}
私のGradleのスキルが悪いですが、これは正しい方法ではないことが分かりました。私の理解では、ext
ブロックが元のフライウェイの設定を上書きするので、flywayMigrate
の後にflywayMigrate2
を実行したければ、元のセットに戻すのではなく、設定値のセットを使用します。
私はこれを行う必要がある最初の人になることはできませんが、まともなアプローチを見つけるのに苦労しています。
おかげで、私は、コマンドラインに渡されるのではなく、フライウェイ構成値はビルドスクリプト内に含まれる必要があります。私はあなたのproject.extの例は、私のflywayMigrate2タスクと同じことをやっていると思う - タスクが完了した後につかまるグローバル値を上書きする – codebox