sql-server-2012sonarqubesonarqube5.3

MessageException: Current version is too old. Please upgrade to Long Term Support version firstly


I downloaded SonarQube 5.3, configured the sonar.properties file, downloaded the JDBC driver for MSSQL (I'm using SQL Server 2012 and SQL JDBC 4.2), created a user with all grants in my SQL Server 2012 instance with database sonar.

Then I execute startSonar.bat and this throws the following error:

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 ---

This is what's in the sonar.properties file:

# 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

All I see is "Current version is too old. Please upgrade to Long Term Support version firstly." but... upgrade what?


Solution

  • This has nothing to do with your database brand or version, but with the version of the SonarQube platform you're upgrading from. Starting with version 4.5, new versions of the platform only accumulate database upgrade scripts starting from the previous Long Term Support version. So the SonarQube platform version 3.2 knows how to upgrade all the way from 1.5, but 5.3 only knows how to update the database starting from version 4.5.x.

    So you must first upgrade to 4.5.x - I'd recommend 4.5.7 - and then upgrade to 5.3.

    Update

    5.6.7 is the current a previous LTS, so the current upgrade path from a hypothetical 3.2 install would be:

    3.2 -> 4.5.7 -> 5.6.6

    Update 1 Dec 17

    6.7 is the current LTS, so the current upgrade path from a hypothetical 3.2 install would be:

    3.2 -> 4.5.7. -> 5.6.7 -> 6.7

    Intermediate versions can be skipped.