【问题标题】:Flyway on production database - Migration Checksum mismatch生产数据库上的 Flyway - 迁移校验和不匹配
【发布时间】:2015-07-07 08:17:10
【问题描述】:

每次我从数据库结构中更改某些内容时,我都会使用时间戳创建一个新的迁移文件以按顺序执行,使用干净的数据库,迁移命令(使用 maven 插件或命令行工具)可以完美运行,但在生产数据库中,具有相同的数据库结构但添加了数据我得到了这个错误:

未能执行目标 org.flywaydb:flyway-maven-plugin:3.2.1:migrate (主要)关于项目eee-ejb:org.flywaydb.core.api.FlywayException: 验证失败。迁移的迁移校验和不匹配 1430224929 [错误] -> 应用于数据库:-1639634536 [错误] -> 已解决 本地:-1412099238

如何在不断添加数据的生产数据库中使用 flyway?

【问题讨论】:

  • 你找到解决方案了吗?

标签: mysql maven flyway


【解决方案1】:

这与添加的数据无关。正在修改的是迁移脚本本身。检查的一个地方是 Git CRLF 规范化问题。

更新:Flyway 4.0 现在会自动处理这个问题。

【讨论】:

  • 问题是迁移的顺序,我用的是时间戳,谢谢回复。
  • 在本地工作但在生产数据库中没有遇到同样的问题,还有其他方法可以解决这个问题吗?
  • 从 4.0 开始如何处理?我在 5.1.1 上遇到了校验和不匹配错误,我认为唯一不同的是 Git CRLF。它通过 docker 容器在我的本地机器上工作,但在构建服务器上失败。源历史记录对相关文件没有任何更改。
  • @Claudinei 你发现了吗?我有一个 prod 迁移并在下一次开发中添加了新文件,现在它将新文件显示为“已忽略”。我该如何克服这个问题?
【解决方案2】:

最初运行的脚本现在已更改。如果您确定更改是您想要的,请运行

./flywayrepair

这将接受更改,更新元数据表,您将不会收到错误。

【讨论】:

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