【发布时间】:2023-03-20 16:26:01
【问题描述】:
我有一个 Gradle 脚本,它使用 flyway 插件创建一些数据库表,现在我需要更新脚本,以便它可以使用 2 组单独的 flyway 脚本,每个脚本都更新一个单独的数据库。
在脚本的单数据库版本中,我只是这样做:
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']
}
我一直在尝试声明一个新任务来运行第二个数据库的脚本:
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
我的 Gradle 技能很差,但我知道这不是正确的做法 - 我的理解是 ext 块会覆盖原来的 flyway 配置,所以如果我想在 @987654325 之后运行 flywayMigrate @ 它将继续使用第二组配置值,而不是恢复到原始设置。
我不能成为第一个需要这样做的人,但我正在努力寻找合适的方法,有人可以帮忙吗?
【问题讨论】: