> For the complete documentation index, see [llms.txt](https://docs.sonarsource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonarsource.com/sonarqube-server/9.9/setup-and-upgrade/upgrade-the-server/before-you-upgrade.md).

# Before you upgrade

This page contains some concepts and recommendations that you should familiarize yourself with before upgrading to another SonarQube version. This page is for SonarQube 9.9.

{% hint style="info" %}
**For AI agents:** You're in the SonarQube Server 9.9 documentation. For a list of all 9.9 pages, see the [SonarQube Server 9.9 page index](https://152261287-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBmptmznn7RpPe5u7vdup%2Fuploads%2F7O6jgZAiehDGe0FMXDaC%2Fsonarqube-server-9.9-llms.txt?alt=media). For the whole site, see the [page index](https://docs.sonarsource.com/llms.txt) or the [full text](https://docs.sonarsource.com/llms-full.txt). For another version, replace 9.9 in the URL with that version. The [latest version](https://docs.sonarsource.com/sonarqube-server/) has no version number in its URL.
{% endhint %}

This page contains some concepts and recommendations that you should familiarize yourself with before upgrading. See the [Upgrade guide](/sonarqube-server/9.9/setup-and-upgrade/upgrade-the-server/upgrade-guide.md) for information on the actual upgrade process.

## SonarQube version number format <a href="#sonarqube-version-number-format" id="sonarqube-version-number-format"></a>

Version numbers have up to three digits with each digit representing part of the release cycle:

![Picture explaining how to read the SonarQube version number format](https://152261287-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBmptmznn7RpPe5u7vdup%2Fuploads%2Fgit-blob-ac551b020ae3c344c36c234e5e76be3c89991ac1%2F01b6635d5a4fb4b0c86b6c6c3839bf1840a64b36.png?alt=media)

Picture explaining how to read the SonarQube version number format

**Major version number**

The major version number represents a series of releases with high-level objectives for the release cycle. It’s incremented with the release following an LTA [Patched versions](/sonarqube-server/9.9/setup-and-upgrade/upgrade-the-server/active-versions.md)) version (for example, the release following 7.9 LTA was 8.0).

**Minor version number**

The minor version number corresponds to incremental functional changes within a major release cycle. At the time of an LTA release, the release cycle is closed and the minor version number is frozen.

**Patch release number**

The patch release number represents patches that fix blockers and critical problems.

## Migration path <a href="#migration-path" id="migration-path"></a>

Upgrading across multiple non-LTA versions is handled automatically. However, if there are one or multiple LTA versions in your migration path, you must first migrate to each intermediate LTA and then to your target version, as shown in **Example 3** below.

When upgrading to an LTA version, you should directly upgrade to its latest patch. This allows you to make sure everything runs well (see Practice your upgrade section below) with that patch.

You can upgrade from the latest LTA version to the latest non-LTA version directly. See **Example 4** below.

{% hint style="info" %}
If you’re migrating from an earlier patch version of an LTA, you can upgrade directly to the next LTA. You don’t need to install any intermediate patch versions.
{% endhint %}

**Migration Path Examples**:

**Example 1** – From 8.1 > 9.8, the migration path is 8.1 > 8.9 LTA > 9.8\
**Example 2** – From 9.6 > 9.9 LTA, the migration path is 9.6 > 9.9 LTA\
**Example 3** – From 7.9 LTA > 9.9 LTA, the migration path is 7.9 LTA > 8.9 LTA > 9.9 LTA\
**Example 4** – From 8.9 LTA > 9.9 LTA, the migration path is 8.9 LTA > 9.9 LTA

## SonarScanner compatibility <a href="#testing-upgrade" id="testing-upgrade"></a>

Check the SonarScanner versions for the SonarQube Server version that you are updating to. See the individual scanner pages for more details.

<table><thead><tr><th width="213.6746826171875">SonarScanner</th><th>2026.1 LTA</th><th width="124.3671875">2025.6</th><th>2025.5</th><th>2025.4 LTA</th><th>2025.1 LTA</th><th>9.9 LTA</th></tr></thead><tbody><tr><td>SonarScanner CLI</td><td>8.0.1</td><td>8.0.1</td><td>7.2</td><td>7.2</td><td>7.0.1</td><td>4.8</td></tr><tr><td>Azure DevOps extension</td><td>8.0.1</td><td>8.0.0</td><td>7.4.1</td><td>7.3</td><td>7.1.1</td><td>5.11.1</td></tr><tr><td>Jenkins extension</td><td>2.18</td><td>2.18</td><td>2.18</td><td>2.18</td><td>2.17.3</td><td>2.15</td></tr><tr><td>SonarScanner for Maven</td><td>5.5.0.6356</td><td>5.5.0.6356</td><td>5.2.0.4988</td><td>5.1.0.4751</td><td>5.0.0.4389</td><td>3.9.1.2184</td></tr><tr><td>SonarScanner for Gradle</td><td>7.2.2.6593</td><td>7.2.0.6526</td><td>6.3.1.5724</td><td>6.2.0.5505</td><td>6.0.1.5171</td><td>3.5.0.2730</td></tr><tr><td>SonarScanner for .NET</td><td>11.0.0.126294</td><td>11.0.0.126294</td><td>10.4.0.124828</td><td>10.3.0.120579</td><td>9.0.2</td><td>5.11</td></tr><tr><td>SonarScanner for NPM</td><td>4.3.0</td><td>4.3.0</td><td>4.3.0</td><td>4.3.0</td><td>4.2.6</td><td>3.7.0</td></tr><tr><td>SonarScanner for Python</td><td>1.3.0.4086</td><td>1.3.0.4086</td><td>1.1.0.2035</td><td>1.1.0.2035</td><td>0.2.0.520</td><td>N/A</td></tr></tbody></table>

## Release upgrade notes <a href="#release-upgrade-notes" id="release-upgrade-notes"></a>

Usually SonarQube releases come with some specific recommendations for upgrading from the previous version. You should read the [Release upgrade notes](/sonarqube-server/9.9/setup-and-upgrade/release-upgrade-notes.md) for each version between your current version and the target version.

## Practice your upgrade <a href="#practice-your-upgrade" id="practice-your-upgrade"></a>

We recommend practicing your upgrade to:

* make sure your infrastructure can run the upgrade.
* get an idea of how long the upgrade will take.
* gain a better understanding of the upgrade process and anticipate what you’ll need to do when performing the actual upgrade.
* address any issues you encounter during the practice upgrade on the [Sonar community](https://community.sonarsource.com/).

To practice your upgrade, create a staging environment using a recent backup of your production database. You want your staging environment to be as similar to your production instance as possible because the resources and time needed to upgrade depends on what’s stored in your database. Use this staging environment to test the upgrade, observing how long it takes to back up and restore systems and complete the process.

You can use our calculator to help determine your update path.

{% @sonar-embeds/upgrade-calculator fullWidth="true" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sonarsource.com/sonarqube-server/9.9/setup-and-upgrade/upgrade-the-server/before-you-upgrade.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
