flyway の gradle プラグインを使用して移行を管理したい 2 つのデータベースがあります。
両方のデータベースを移行できる単一のタスクが必要です。ただし、flywayMigrate タスクを 1 つのタスクから 2 回呼び出すことはできないようです。
これが私が持っているものです...
task migrateFoo() {
doFirst {
flyway {
url = 'jdbc:mysql://localhost/foo'
user = 'root'
password = 'password'
locations = ['filesystem:dev/src/db/foo']
sqlMigrationPrefix = ""
initOnMigrate = true
outOfOrder = true
}
}
doLast {
tasks.flywayMigrate.execute()
}
}
task migrateBar() {
doFirst {
flyway {
url = 'jdbc:mysql://localhost/bar'
user = 'root'
password = 'password'
locations = ['filesystem:dev/src/db/bar']
sqlMigrationPrefix = ""
initOnMigrate = true
outOfOrder = true
}
}
doLast {
tasks.flywayMigrate.execute()
}
}
task migrate(dependsOn: ['migrateFoo','migrateBar']) {}
コマンド ラインから migrateFoo または migrateBar を明示的に呼び出すと問題なく動作しますが、migrate タスクを呼び出そうとすると、データベース foo のみが更新されます。
migrateBar タスクの doFirst タスクと doLast タスクの両方が呼び出されますが、tasks.flywayMigrate.execute() タスクは、migrateBar から 2 回目に呼び出されることはありません。
flyway で単一のタスクから foo と bar の両方を移行するにはどうすればよいですか?