SonarQube 5.6.3升级至6.7.1:数据库升级警告问题咨询
解决SonarQube 6.7.1启动时的“数据库需升级”警告问题
针对你从SonarQube 5.6.3升级到6.7.1时遇到的数据库警告问题,我帮你逐一拆解原因和排查方向:
1. 数据库版本:完全兼容,排除问题
SonarQube 6.7.1的官方兼容列表明确支持Microsoft SQL Server 2012及更高版本,你用的SQL Server 2014完全符合要求,而且5.6.3版本能正常运行在该数据库上,所以数据库版本绝对不是触发警告的原因。
2. 插件版本:低概率影响,但可快速验证
你提到的两个插件版本其实都在6.7.1的兼容范围内:
sonar-java-plugin-4.6.0.8784:6.7.1支持的Java插件版本区间是4.5.0.8398 ~ 5.13.1.1828,你的版本完全在范围内sonar-csharp-plugin-5.10.1.1411:6.7.1支持的C#插件版本区间是5.0.0.686 ~ 7.18.0.29862,这个版本也没问题
不过为了彻底排除插件影响,你可以先做个快速测试:
- 停止SonarQube服务
- 将
extensions/plugins目录下的第三方插件(也就是你提到的Java和C#插件)临时移到其他文件夹 - 只保留SonarQube核心插件,重新启动6.7.1
- 如果警告消失,再逐个放回插件排查;如果警告依然存在,说明和插件无关
3. 核心原因:版本升级本身需要数据库Schema迁移
其实这个“数据库需升级”的警告是SonarQube跨大版本升级时的正常提示!从5.6.3到6.7.1,SonarQube的数据库结构有不少变更(比如新增统计字段、调整表关联关系等),启动新版本时,系统会自动检测数据库Schema版本不匹配,触发升级提示。
但为什么进程还在运行?大概率是数据库迁移没有顺利完成,可能的阻碍因素包括:
- 数据库用户权限不足:升级需要用户拥有
ALTER TABLE、CREATE TABLE、DROP TABLE等DDL权限,你可以检查下当前用户的权限配置 - 数据库锁表或未提交事务:如果旧版本SonarQube没有完全停止,或者有其他进程在访问数据库,可能导致迁移脚本无法执行
- 迁移脚本执行报错:你可以查看SonarQube的
web.log日志文件(路径一般是sonarqube-6.7.1/logs/web.log),里面会详细记录迁移过程中的错误信息
4. 建议的解决步骤
按照这个顺序操作,应该能解决问题:
- 先备份数据库,避免升级过程中数据丢失
- 彻底停止所有SonarQube相关进程,确保数据库没有被其他进程占用
- 检查数据库用户的权限,确保拥有足够的DDL和DML权限
- 重新启动SonarQube 6.7.1,观察日志中的迁移进度
- 如果迁移失败,根据日志中的错误提示针对性修复(比如手动清理锁表、调整权限等)
内容的提问来源于stack exchange,提问作者Aman Padda
相关产品推荐
相关产品推荐

