我在 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);
最佳答案
此行为已在 Flyway 4.0 中修复。看 https://github.com/flyway/flyway/issues/253
关于java - flyway 3.1 迁移校验和不匹配。校验和的计算取决于平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043269/