MessageException:当前版本太旧。请先升级到长期支持版本
MessageException: Current version is too old. Please upgrade to Long Term Support version firstly
我下载了 SonarQube 5.3,配置了 sonar.properties
文件,下载了 JDBC MS SQL 驱动程序(我正在使用 SQL Server 2012 和 SQL JDBC 4.2),在我的 SQL Server 2012 实例和数据库 sonar
.
中创建了一个拥有所有授权的用户
然后我执行 startSonar.bat
并抛出以下错误:
2016.01.22 13:57:57 INFO web[o.s.s.p.ServerImpl] SonarQube Server / 5.3 / 8db783e62b266eeb0d0b10dc050a7ca50e96c5d1
2016.01.22 13:57:57 INFO web[o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://localhost;databaseName=sonar
2016.01.22 13:57:59 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
org.sonar.api.utils.MessageException: Current version is too old. Please upgrade to Long Term Support version firstly.
2016.01.22 13:57:59 INFO web[jruby.rack] jruby 1.7.9 (ruby-1.8.7p370) 2013-12-06 87b108a on Java HotSpot(TM) 64-Bit Server VM 1.8.0_66-b18 [Windows 7-amd64]
2016.01.22 13:57:59 INFO web[jruby.rack] using a shared (threadsafe!) runtime
2016.01.22 13:58:05 ERROR web[jruby.rack] initialization failed
org.jruby.rack.RackInitializationException: java.lang.NullPointerException
at org.jruby.rack.RackInitializationException.wrap(RackInitializationException.java:31) ~[jruby-rack-1.1.13.2.jar:na]
at org.jruby.rack.RackApplicationFactoryDecorator.init(RackApplicationFactoryDecorator.java:98) ~[jruby-rack-1.1.13.2.jar:na]
at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:50) ~[jruby-rack-1.1.13.2.jar:na]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4720) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) [tomcat-embed-core-8.0.18.jar:8.0.18]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_66]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_66]
--- and then creates a cascade of errors ---
这是 sonar.properties
文件中的内容:
# DATABASE
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# Use the following connection string if you want to use SQL Auth while connecting to MS Sql Server.
# Set the sonar.jdbc.username and sonar.jdbc.password appropriately.
sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar
# TCP port for incoming HTTP connections. Disabled when value is -1.
sonar.web.port=4950
我只看到 "Current version is too old. Please upgrade to Long Term Support version firstly." 但是...升级什么?
这与您的数据库品牌或版本无关,但与您升级的SonarQube平台版本有关。从4.5版本开始,平台的新版本只积累从之前的Long Term Support版本开始的数据库升级脚本。所以SonarQube平台3.2版本知道怎么从1.5一路升级,而5.3只知道从4版本开始更新数据库。5.x.
所以您必须先升级到 4。5.x - 我推荐 4.5.7 - 然后 然后 升级到 5.3。
更新
5.6.7 是当前的 以前的 LTS,因此假设 3.2 安装的当前升级路径是:
3.2 -> 4.5.7 -> 5.6.6
2017 年 12 月 1 日更新
6.7 是当前的 LTS,因此假设 3.2 安装的当前升级路径为:
3.2 -> 4.5.7。 -> 5.6.7 -> 6.7
可以跳过中间版本。
以防万一有人在安装 fresh SonarQube 时遇到同样的问题。似乎每次安装过程由于其他错误而无法完成数据库表的创建时,您都必须删除表。
我尝试安装最新版本 (7.0) 遇到这个问题。我切换到 LTS 版本(6.7.3),但仍然是同样的错误。然后我删除了之前创建的所有表,然后我遇到了 binlog_format 的另一个问题,它必须是 row-based。更正此问题后,我再次遇到相同的错误 "version is too old"。
查看 logs/web.log 文件以查找错误。修复错误后删除表并让进程重新创建数据库。
我下载了 SonarQube 5.3,配置了 sonar.properties
文件,下载了 JDBC MS SQL 驱动程序(我正在使用 SQL Server 2012 和 SQL JDBC 4.2),在我的 SQL Server 2012 实例和数据库 sonar
.
然后我执行 startSonar.bat
并抛出以下错误:
2016.01.22 13:57:57 INFO web[o.s.s.p.ServerImpl] SonarQube Server / 5.3 / 8db783e62b266eeb0d0b10dc050a7ca50e96c5d1
2016.01.22 13:57:57 INFO web[o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://localhost;databaseName=sonar
2016.01.22 13:57:59 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
org.sonar.api.utils.MessageException: Current version is too old. Please upgrade to Long Term Support version firstly.
2016.01.22 13:57:59 INFO web[jruby.rack] jruby 1.7.9 (ruby-1.8.7p370) 2013-12-06 87b108a on Java HotSpot(TM) 64-Bit Server VM 1.8.0_66-b18 [Windows 7-amd64]
2016.01.22 13:57:59 INFO web[jruby.rack] using a shared (threadsafe!) runtime
2016.01.22 13:58:05 ERROR web[jruby.rack] initialization failed
org.jruby.rack.RackInitializationException: java.lang.NullPointerException
at org.jruby.rack.RackInitializationException.wrap(RackInitializationException.java:31) ~[jruby-rack-1.1.13.2.jar:na]
at org.jruby.rack.RackApplicationFactoryDecorator.init(RackApplicationFactoryDecorator.java:98) ~[jruby-rack-1.1.13.2.jar:na]
at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:50) ~[jruby-rack-1.1.13.2.jar:na]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4720) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) [tomcat-embed-core-8.0.18.jar:8.0.18]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) [tomcat-embed-core-8.0.18.jar:8.0.18]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_66]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_66]
--- and then creates a cascade of errors ---
这是 sonar.properties
文件中的内容:
# DATABASE
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# Use the following connection string if you want to use SQL Auth while connecting to MS Sql Server.
# Set the sonar.jdbc.username and sonar.jdbc.password appropriately.
sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar
# TCP port for incoming HTTP connections. Disabled when value is -1.
sonar.web.port=4950
我只看到 "Current version is too old. Please upgrade to Long Term Support version firstly." 但是...升级什么?
这与您的数据库品牌或版本无关,但与您升级的SonarQube平台版本有关。从4.5版本开始,平台的新版本只积累从之前的Long Term Support版本开始的数据库升级脚本。所以SonarQube平台3.2版本知道怎么从1.5一路升级,而5.3只知道从4版本开始更新数据库。5.x.
所以您必须先升级到 4。5.x - 我推荐 4.5.7 - 然后 然后 升级到 5.3。
更新
5.6.7 是当前的 以前的 LTS,因此假设 3.2 安装的当前升级路径是:
3.2 -> 4.5.7 -> 5.6.6
2017 年 12 月 1 日更新
6.7 是当前的 LTS,因此假设 3.2 安装的当前升级路径为:
3.2 -> 4.5.7。 -> 5.6.7 -> 6.7
可以跳过中间版本。
以防万一有人在安装 fresh SonarQube 时遇到同样的问题。似乎每次安装过程由于其他错误而无法完成数据库表的创建时,您都必须删除表。
我尝试安装最新版本 (7.0) 遇到这个问题。我切换到 LTS 版本(6.7.3),但仍然是同样的错误。然后我删除了之前创建的所有表,然后我遇到了 binlog_format 的另一个问题,它必须是 row-based。更正此问题后,我再次遇到相同的错误 "version is too old"。
查看 logs/web.log 文件以查找错误。修复错误后删除表并让进程重新创建数据库。