FlywayException:Validate failed:Migration checksum mismatch

问题描述:项目数据迁移,使用到Flyway,但是,在项目运行过程中经常出现如下问题

flyway异常出现错误
那么这段话表示什么意思呢?
看这句话:

Caused by:ori.flywaydb.core.api.FlywayException:Validate failed:migration checksum mismatch for migration 1.15.0
->Applied to database: 37561532
->Resolved locally  : -351684334

Flyway中的checksum值应当是-351684334,但是实际上运行的值是37561532,而且这个错误是在运行SQL Script 1.15.0出现的!

那么出现这个问题的原因是什么呢?
这里涉及到flyway的一些基本常识,flyway 官方文档:https://flywaydb.org/documentation/
常识1):项目每次执行,都会调用数据库,会先运行SQL Script 要使用到Flyway,但是flyway查询数据时,会判断数据库的数据结构或者数据什么的是否改变,判断标准就是checksum。

这是flyway执行记录表

如图所示:在1.15被执行之前,执行的版本是1.14,也是初始化,但是在项目中的SQLScript更新到1.15版本后,项目开始运行的话,会先执行1.15,如果1.15没有执行即第二行没有增加的话,那么,会执行1.15版本,然后会有个checksum,如果检测到有1.15版本的话,那么将会检测自己的checksum后数据库里面的checksum是否相等,如果相等,那么就不会报错,但是,如果不相等的话,就会报出上面的异常;如果没有1.15版本的话,就会成功进行数据操作,最后生成1.15的记录。

常识2)Github管理项目,由于项目开发不是一个人,运行项目的版本可能不相同,但是数据库只有一个,每个项目运行都会用到flyway,进行数据操作。

总结:Github下,运行的版本不一样,有的使用的Sql Script 版本是1.14,但是有的是1.15,如果版本不进行及时更新的话,就会出现错误。

如何解决这个问题:
将上面数据表格中的对应的数据元删掉,然后运行最新的版本。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
出现“failed to run kubelet: validate service connection: validate cri v1 runtime”错误是因为Kubernetes的kubelet服务在验证与容器运行时(CRI V1 Runtime)的连接时出现了问题。 Kubernetes的kubelet是集群中每个节点上的主要组件,负责管理容器的创建、启动、停止和销毁。与容器运行时配合使用可以实现容器管理的功能。CRI(Container Runtime Interface)是Kubernetes定义的容器运行时接口,用于与底层容器运行时通信。 出现“validate cri v1 runtime”错误可能有以下几个原因: 1. 容器运行时不兼容:可能kubelet正在与不兼容的容器运行时进行通信。请确保kubelet和容器运行时的版本兼容,并且与Kubernetes集群的版本保持一致。 2. CRI插件未正确安装或配置:kubelet通过CRI插件与容器运行时进行通信。请确保CRI插件已正确安装,并且kubelet的配置文件中已正确配置CRI插件的相关参数。 3. 容器运行时服务不可用:kubelet无法连接到运行容器运行时的服务。检查容器运行时的服务是否已正确启动,并且网络连接是否正常。 解决“validate cri v1 runtime”错误可以采取以下步骤: 1. 检查kubelet和容器运行时的版本是否兼容,确保与Kubernetes集群的版本保持一致。 2. 检查CRI插件是否正确安装,并且kubelet的配置文件中已正确配置CRI插件的相关参数。 3. 检查容器运行时的服务是否已正确启动,并且网络连接是否正常。 4. 如果上述步骤都没有解决问题,可以尝试重新安装和配置Kubernetes集群,确保正确安装和配置kubelet和容器运行时。 总之,出现“failed to run kubelet: validate service connection: validate cri v1 runtime”错误一般是由于kubelet与容器运行时的连接验证问题引起的,需要检查版本兼容性、CRI插件配置和容器运行时服务是否正常运行等方面的问题来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值