【问题标题】:flyway 3.1 Migration Checksum mismatch. Calculation of checksum is platform dependentflyway 3.1 迁移校验和不匹配。校验和的计算取决于平台
【发布时间】:2015-05-16 14:04:40
【问题描述】:

我在windows和ubuntu客户端,开发平台都有一个完全相同的项目源码和sql脚本。 当我编译并尝试在我的 linux 服务器上部署项目时,我只收到我的 linux 版本包的这个异常。

原因:org.flywaydb.core.api.FlywayException:验证失败。发现应用迁移和可用迁移之间的差异:Migration Checksum mismatch for migration V2__xxx_module.sql: DB=-1434535307, Classpath=-282428834 在 org.flywaydb.core.Flyway.doValidate(Flyway.java:1020) 在 org.flywaydb.core.Flyway.access $300(Flyway.java:52) 在 org.flywaydb.core.Flyway$1.execute(Flyway.java:925) 在 org.flywaydb.core.Flyway$1.execute(Flyway.java:919) 在 org.flywaydb.core.Flyway.execute(Flyway.java:1320) 在 org.flywaydb.core.Flyway.migrate(Flyway.java:919)

3.1 版似乎也存在平台依赖性。 我真的需要同时使用这两个操作系统平台,那么有什么办法可以解决这个问题吗?

更新:

我看到还有很多人有同样的问题,所以这是我解决问题的方法。

我刚刚关闭了验证,等待flyway 4他们说这个问题已经解决了。

Flyway flyway = new Flyway(); 
...
flyway.setValidateOnMigrate(false);

【问题讨论】:

    标签: java linux database flyway


    【解决方案1】:

    此行为已在 Flyway 4.0 中修复。看 https://github.com/flyway/flyway/issues/253

    【讨论】:

      【解决方案2】:

      这是 Git 的一个已知问题:https://github.com/flyway/flyway/issues/253

      您可以通过在 .gitattributes 中正确配置 CRLF 处理以在所有平台上具有一致的行尾 (LF) 来解决此问题,例如添加 * text eol=lf 并仅添加二进制格式的例外。

      【讨论】:

      • properly configuring : 你能补充一些细节吗?
      【解决方案3】:

      您有 3 个选项:

      1. 使用flyway 4.0版
      2. 使用maven Flyway.repair()
      3. 删除 SQL 文件。清洁和重建。再次创建 SQL 文件。

      【讨论】:

        猜你喜欢
        • 2018-12-11
        • 2015-07-07
        • 2012-10-08
        • 2017-11-26
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 2017-04-30
        • 1970-01-01
        相关资源
        最近更新 更多