项目启动时flowable报错提示 version mismatch: library version is *, db version is 5.99.0.0

        最近在开发过程中遇到了Flowable的一个坑,也算是mysql的一个坑。springboot 中使用Flowable的时候启动报错。

version mismatch: library version is '6.6.0.0', db version is 5.99.0.0 Hint: Set <property name="databaseSchemaUpdate" to value="true" or value="create-drop" (use create-drop for testing only!) in bean processEngineConfiguration in flowable.cfg.xml for ,

        先讲最终解决方案,如果报从错误中 包含 db version is 5.99.0.0,那么大概率跟碰到的情况一样,要么把mysql的表名改为全大写,要么设置mysql不区分大小写就能解决这个问题。

        想看细节的朋友可以继续往下看,不想看细节的朋友可以按照结论去排查看用这个方案有没有解决问题。

接下来先说一下经过。一个已经在运行中的项目(系统上线了)用了Flowable,现在有需求要改功能,要重新搭一套环境来做对应的开发,我按照生产的环境搭了一套,新安装了一套mysql8.0.23,数据库的结构,数据全部copy过来了。启动项目,始终报错,找到了错误的地方

网上各种搜这个报错怎么解决,都是说把数据库的act_ge_property表的数据改的和报错的那个一致,我检查了一下,数据本身就是6.6.00

 我就奇怪了,为什么非要说我的DB里面的版本是5.99.0.0呢。怎么弄都不对,最后打断点跟了源码才发现问题。

报错是从这来的,获取到的版本和当前包中定义的版本不一致就会报错。接下来就要看版本是怎么获取到的。

 从这串代码中就能看到,先从getProperty方法中获取,如果获取到的是空,就从getUpgradeStartVersion方法中获取。

先看看getProperty方法,这里先拿到了一个表名ACT_GE_PROPERTY,这张表是不是很熟悉,很多其他的帖子回复的解决版本不对的问题都是要去改这张表就是从这来的。请注意,表名是全大写的,如果你的数据库严格区分大小写,这里连表都找不到,肯定也找不到数据了,最后就会return null ,那么就走 getUpgradeStartVersion 的逻辑。而getUpgradeStartVersion直接返回5.99.0.0,那就出现最开头的,版本不一致的问题了。

 

 

 

 

 

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值