2017-07-10 54 views
1

FlywayDB是否支持脚本可以通过“占位符”使用不同参数集多次重新运行脚本的用例,并将其视为单独版本或可重复迁移(尽管使用不同的SQL文件)?我有一个要求,我们会希望运行相同的脚本集按照“区域”来组织数据(美国,英国,加拿大等)Flyway支持多次使用占位符params重新运行SQL文件

如..

文件:

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 

回答

0

否是一个简短的回答。我有一对夫妇的想法,你可能想进一步探讨:

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