【问题标题】:Flyway doesn't mark statement in schema_version as fail in DB2Flyway 不会将 schema_version 中的语句标记为 DB2 中的失败
【发布时间】:2018-02-23 03:44:56
【问题描述】:

如果迁移过程中某些脚本失败,flyway 不会将记录添加到 DB2 db 中的 schema_version 以获取失败的语句。

你知道如何避免这种情况吗?

I did a migration, 4th script failed, i expect this script will have status ABORTED/FAILED

【问题讨论】:

  • 您的意思是即使迁移失败也要更改 schema_version?听起来是个坏主意。
  • 不,我的意思是如果在DB2迁移过程中某些脚本失败了,你不需要使用命令修复,失败的脚本状态为“Pending”
  • 似乎尝试和未应用迁移的 flyway 文档仍处于待处理状态。 -612(重复名称)表明相关脚本中存在编码错误,那么为什么不修复该问题呢?
  • 如果只是举例。在迁移到 Oracle db 期间,如果某些脚本失败,您需要修复此脚本并在命令 MIGRATE 之前执行命令 REPAIR。我在问为什么在迁移到 DB2 期间不需要进行修复。你失败的脚本状态为 PENDING

标签: db2 flyway dbmigrate


【解决方案1】:

您观察到的 flyway 行为差异的一个解释是 Oracle 处理 DDL(每个 DDL 之前/之后的隐式提交)的方式与 Db2 处理 DDL 的方式(默认情况下在事务控制下实现 DDL)的比较。因此,使用 Db2 可以将每次迁移安排为原子迁移并在失败时回滚 - 这意味着无需修复任何内容,因此不需要像 flyway Oracle 实现可能需要的修复操作。

【讨论】:

    猜你喜欢
    • 2017-03-23
    • 2020-04-23
    • 2018-11-28
    • 2015-11-26
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 2012-05-17
    相关资源
    最近更新 更多