MeterSphere升级后api-test服务一直是starting状态,错误日志(contains a failed migration to version 2)原因及解决方法
MeterSphere的api-test服务异常(starting)原因和解决方法。org.flywaydb.core.api.FlywayException: Schema `metersphere` contains a failed migration to version 2 !
升级后服务异常
一直在用MeterSphere做接口自动化测试,想用MeterSphere最新版本里的一些新功能和优化,(MeterSphere稳定快速迭代,一个月一个大版本),我这里从2.1版本直接升级到2.6版本,升级过程非常顺利,但是升级完成后,其他服务都能正常运行,只有api-test服务一直是starting启动状态。
查看系统日志
到后台查看一下系统日志,MeterSphere的日志文件默认都存储logs目录下:/opt/metersphere/logs。
现在是因为api-test服务异常,所以查看api-test相关的日志就行**/opt/metersphere/logs/api-test**
我一般习惯查看info.log,也可以查看error.log。
查看info.log日志发现了报的是flyway相关错误,并且相关版本是version2.
问题原因
在GitHub上,查看MeterSphere2.6相关信息,发现在2.6版本中MeterSphere对系统报告数据和功能做了大量的优化,如果系统存在报告数据量比较大时,在系统升级时就会出现问题,需要人为手动执行flyway sql version = 2 的sql文件。
解决方法
1、下载文件目录:注意MeterSphere是微服务架构的,所以要到对应的服务下,查看和下载相应的数据文件,此api-test问题,就到api-test里下载即可
2、下载sql文件:根据错误日志信息,执行api-test服务里相对应sql文件。注意:这里下载的分支一定要和安装的MeterSphere版本一致。
文件路径: https://github.com/metersphere/metersphere/blob/v2.6/api-test/backend/src/main/resources/db/migration/V2__2.3.0_release.sql
3、执行SQL文件:打开此sql文件,可以看到有大量的更新。我系统中报告数据量比较大,花了些时间在执行上。建议逐条手动执行每一个更新。
4、修改api-version数据表信息 :第一步中的更新全部执行成功后,修改 api_version 表对应版本的 success 值为1。注意:因为是微服务架构,所以如果是其他的服务,也是找到对应服务的version表修改。
5、msctl reload 重启服务即可
6、msctl status 查看服务状态,所有服务正常
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)