Flyway支持使用占位符参数多次重新运行SQL文件

时间:2017-07-10 08:45:53

标签: flyway

FlywayDB是否支持使用不同参数集通过"占位符"多次重新运行脚本的用例。并被视为单独的版本或可重复的迁移(虽然使用不同的SQL文件)?我有一个要求,我们想要运行相同的脚本集来根据" region"来组织数据。 (美国,英国,加州等)

... e.g

文件:

sql/V1__customer_info.sql
sql/V2__customer_address.sql

命令:

# Migrate US customers
mvn -Dflyway.placeholders.region_id=us flyway:migrate

# Migrate UK customers
mvn -Dflyway.placeholders.region_id=uk flyway:migrate

# Migrate Australian customers
mvn -Dflyway.placeholders.region_id=au flyway:migrate

1 个答案:

答案 0 :(得分:0)

不是简短的回答。我有一些你可能想进一步探索的想法:

  1. callback专门afterMigrate.sql中实施,然后根据您的示例进行调用。即使没有要应用的挂起迁移,也会调用afterMigrate。这是“扩展”回调功能,您将受到单个sql文件的约束,因此需要将信息和地址组合到单个文件中。 Java callbacks更灵活,但我没有使用它们。
  2. 将列表传递给占位符,并将数据库拆分并循环遍历它。这可以通过Oracle和PLSQL实现,但对于其他数据库或者如果您需要支持多种数据库类型可能会很棘手。