+++ title = "Upgrade Grafana" description = "Guide for upgrading Grafana" keywords = ["grafana", "configuration", "documentation", "upgrade"] weight = 700 +++ # Upgrade Grafana We recommend that you upgrade Grafana often to stay up to date with the latest fixes and enhancements. In order to make this a reality, Grafana upgrades are backward compatible and the upgrade process is simple and quick. Upgrading is generally safe (between many minor and one major version) and dashboards and graphs will look the same. There may be minor breaking changes in some edge cases, which are outlined in the [Release Notes](https://community.grafana.com/c/releases) and [Changelog](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) ## Backup We recommend that you backup a few things in case you have to rollback the upgrade. - Installed plugins - Back them up before you upgrade them in case you want to rollback the Grafana version and want to get the exact same versions you were running before the upgrade. - Configuration files do not need to be backed up. However, you might want to in case you add new configuration options after upgrade and then rollback. ### Database backup Before upgrading it can be a good idea to backup your Grafana database. This will ensure that you can always rollback to your previous version. During startup, Grafana will automatically migrate the database schema (if there are changes or new tables). Sometimes this can cause issues if you later want to downgrade. #### sqlite If you use sqlite you only need to make a backup of your `grafana.db` file. This is usually located at `/var/lib/grafana/grafana.db` on Unix systems. If you are unsure what database you use and where it is stored check you grafana configuration file. If you installed grafana to custom location using a binary tar/zip it is usually in `/data`. #### mysql ```bash backup: > mysqldump -u root -p[root_password] [grafana] > grafana_backup.sql restore: > mysql -u root -p grafana < grafana_backup.sql ``` #### postgres ```bash backup: > pg_dump grafana > grafana_backup restore: > psql grafana < grafana_backup ``` ### Ubuntu or Debian You can upgrade Grafana by following the same procedure as when you installed it. #### Upgrade Debian package If you installed Grafana by downloading a Debian package (`.deb`), then you can execute the same `dpkg -i` command but with the new package. It will upgrade your Grafana installation. Go to the [download page](https://grafana.com/grafana/download?platform=linux) for the latest download links. ```bash wget sudo apt-get install -y adduser libfontconfig1 sudo dpkg -i grafana__amd64.deb ``` #### Upgrade from APT repository If you installed Grafana from our APT repository, then Grafana will automatically update when you run apt-get upgrade to upgrade all system packages. ```bash sudo apt-get update sudo apt-get upgrade ``` #### Upgrade from binary .tar file If you downloaded the binary `.tar.gz` package, then you can just download and extract the new package and overwrite all your existing files. However, this might overwrite your config changes. We recommend that you save your custom configuration changes in a file named `/conf/custom.ini`. This allows you to upgrade Grafana without risking losing your configuration changes. ### Centos / RHEL If you installed Grafana by downloading an RPM package you can just follow the same installation guide and execute the same `yum install` or `rpm -i` command but with the new package. It will upgrade your Grafana installation. If you used our YUM repository: ```bash sudo yum update grafana ``` ### Docker This just an example, details depend on how you configured your grafana container. ```bash docker pull grafana/grafana docker stop my-grafana-container docker rm my-grafana-container docker run -d --name=my-grafana-container --restart=always -v /var/lib/grafana:/var/lib/grafana grafana/grafana ``` ### Windows If you downloaded the Windows binary package you can just download a newer package and extract to the same location (and overwrite the existing files). This might overwrite your configuration changes. We recommend that you save your configuration changes in a file named `/conf/custom.ini` as this will make upgrades easier without risking losing your configuration changes. ## Update plugins After you have upgraded, we strongly recommend that you update all your plugins as a new version of Grafana can make older plugins stop working properly. You can update all plugins using ```bash grafana-cli plugins update-all ``` ## Upgrading to v5.0 The dashboard grid layout engine has changed. All dashboards will be automatically upgraded to new positioning system when you load them in v5. Dashboards saved in v5 will not work in older versions of Grafana. Some external panel plugins might need to be updated to work properly. For more details on the new panel positioning system, refer to [panel size position]({{< relref "../dashboards/json-model.md#panel-size-position" >}}) ## Upgrading to v5.2 One of the database migrations included in this release will update all annotation timestamps from second to millisecond precision. If you have a large amount of annotations the database migration may take a long time to complete which may cause problems if you use systemd to run Grafana. We've got one report where using systemd, PostgreSQL and a large amount of annotations (table size 1645mb) took 8-20 minutes for the database migration to complete. However, the grafana-server process was killed after 90 seconds by systemd. Any database migration queries in progress when systemd kills the grafana-server process continues to execute in database until finished. If you're using systemd and have a large amount of annotations consider temporary adjusting the systemd `TimeoutStartSec` setting to something high like `30m` before upgrading. ## Upgrading to v6.0 If you have text panels with script tags they will no longer work due to a new setting that per default disallow unsanitized HTML. For more information about the new setting, refer to [disable sanitize html]({{< relref "../administration/configuration/#disable-sanitize-html" >}}). ### Authentication and security If you are using Grafana's builtin, LDAP (without Auth Proxy) or OAuth authentication all users will be required to login upon the next visit after the upgrade. If you have `cookie_secure` set to `true` in the `session` section you probably want to change the `cookie_secure` to `true` in the `security` section as well. Ending up with a configuration like this: ```ini [session] cookie_secure = true [security] cookie_secure = true ``` The `login_remember_days`, `cookie_username` and `cookie_remember_name` settings in the `security` section are no longer being used so they're safe to remove. If you have `login_remember_days` configured to 0 (zero) you should change your configuration to this to accomplish similar behavior, i.e. a logged in user will maximum be logged in for 1 day until being forced to login again: ```ini [auth] login_maximum_inactive_lifetime_days = 1 login_maximum_lifetime_days = 1 ``` The default cookie name for storing the auth token is `grafana_session`. you can configure this with `login_cookie_name` in `[auth]` settings. ## Upgrading to v6.2 ### Ensure encryption of data source secrets Data sources store passwords and basic auth passwords in secureJsonData encrypted (AES-256 in CFB mode) by default. Existing data source will keep working with unencrypted passwords. If you want to migrate to encrypted storage for your existing data sources you can do that by: - For data sources created through UI, you need to go to data source config, re-enter the password or basic auth password and save the data source. - For data sources created by provisioning, you need to update your config file and use secureJsonData.password or secureJsonData.basicAuthPassword field. See [provisioning docs]({{< relref "../administration/provisioning" >}}) for example of current configuration. ### Embedding Grafana If you're embedding Grafana in a ``, `