【问题标题】:after migrate sql runs after reboot of the application with no migration performed迁移后 sql 在重新启动应用程序后运行,但未执行迁移
【发布时间】:2021-04-29 02:44:51
【问题描述】:

我正在使用 Flyway 6.5.7,并且我有一个 afterMigrate.sql 截断表。我认为脚本只有在发生迁移并且迁移成功时才会运行。但它总是运行(例如重新启动应用程序后)

Schema "A_SCHEMA" is up to date. No migration necessary.
Parsing afterMigrate.sql ...
Executing SQL callback: afterMigrate - 

正确吗?如果是这样,有没有办法实现所描述的行为?

注意:org.flywaydb.core.Flyway#migrate 在应用程序重新启动后返回 0 而没有迁移

谢谢

【问题讨论】:

    标签: flyway


    【解决方案1】:

    它的工作方式是在没有错误的任何迁移之后运行 afterMigrate 回调。成功的迁移就是这样定义的。因此,在您的情况下,您调用了 migrate 命令。它运行成功。它没有迁移任何东西。但是,它运行时没有错误,因此运行了 afterMigrate 回调。

    【讨论】:

      【解决方案2】:

      还有afterEachMigrate 事件,您可以将回调附加到该事件。这在每次成功执行迁移脚本后运行;如果migrate 无事可做,它就不会运行,但不利的一面是,如果migrate 找到它需要运行的多个脚本,它会运行不止一次。根据您推出新脚本的频率,这可能是您更好的解决方案。

      【讨论】:

        猜你喜欢
        • 2020-08-20
        • 2021-07-21
        • 1970-01-01
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多