【问题标题】:Flyway: is there a means to conditionally apply scripts based on a dynamic condition (sql condition)?Flyway:有没有办法根据动态条件(sql条件)有条件地应用脚本?
【发布时间】:2021-02-25 13:32:59
【问题描述】:

我们公司的一些团队目前正在“升级”一些旧项目以使用 Flyway。一个问题是存在多个安装已经可用的数据库对象(基线)。

我们目前有(将来肯定还会有更多)一个用例,我们必须在其中创建一些新的迁移脚本,但它们只应在满足有关数据库当前状态的某些条件时运行。

例如:运行此脚本,但前提是数据库中的表 X 包含数据 Y

我已经看过Flyway conditional db migration,但对我来说这似乎不是正确的解决方案,因为条件不仅仅是一些静态环境。是否应执行迁移的条件应取决于数据库的当前活动状态。

我自己对 Flyway 的经验并不多,但对 Liquibase 的经验更多。在那里我会像这样实现它:

 <preConditions onFail="WARN"> 
    <sqlCheck expectedResult="0">select count(*) from oldtable</sqlCheck> 
 </preConditions>

Flyway 中是否有等价物?

【问题讨论】:

    标签: flyway


    【解决方案1】:

    据我所知,不,Flyway 本身不能做这种条件语句。但是,由于 flyway 只是按顺序运行脚本,因此将条件命令放在部署脚本中即可。 Flyway 只执行脚本,因此可以根据需要对其进行自定义。

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 2019-12-06
      • 2022-01-27
      • 2020-02-17
      • 1970-01-01
      • 2019-06-27
      • 2021-09-26
      • 1970-01-01
      相关资源
      最近更新 更多