---
title: Minor TimescaleDB upgrades | Tiger Data Docs
description: Upgrade your self-hosted TimescaleDB to a new minor version
---

A minor upgrade is when you update from TimescaleDB `<major version>.x` to TimescaleDB `<major version>.y`. A major upgrade is when you update from TimescaleDB `X.<minor version>` to `Y.<minor version>`. You can run different versions of TimescaleDB on different databases within the same PostgreSQL instance. This process uses the PostgreSQL `ALTER EXTENSION` function to upgrade TimescaleDB independently on different databases.

This page shows you how to perform a minor upgrade, for major upgrades, see [Upgrade TimescaleDB to a major version](/docs/deploy/self-hosted/upgrades/major-upgrade/index.md).

## Prerequisites

- Install the PostgreSQL client tools on your migration machine. This includes `psql`, and `pg_dump`.
- Read [the release notes](https://github.com/timescale/timescaledb/releases) for the version of TimescaleDB that you are upgrading to.
- [Perform a backup](/docs/deploy/self-hosted/backup-and-restore/index.md) of your database. While TimescaleDB upgrades are performed in-place, upgrading is an intrusive operation. Always make sure you have a backup on hand, and that the backup is readable in the case of disaster.

## Check the TimescaleDB and PostgreSQL versions

1. **Set your connection string**

   This variable holds the connection information for the database to upgrade:

   Terminal window

   ```
   export SOURCE="postgres://<user>:<password>@<source host>:<source port>/<db_name>"
   ```

2. **Retrieve the version of PostgreSQL that you are running**

   Terminal window

   ```
   psql -X -d $SOURCE -c "SELECT version();"
   ```

   PostgreSQL returns something like:

   Terminal window

   ```
   -----------------------------------------------------------------------------------------------------------------------------------------
   PostgreSQL 17.2 (Ubuntu 17.2-1.pgdg22.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
   (1 row)
   ```

3. **Retrieve the version of TimescaleDB that you are running**

   ```
   psql -X -d $SOURCE -c "\dx timescaledb;"
   ```

   PostgreSQL returns something like:

   Terminal window

   ```
       Name     | Version |   Schema   |                             Description
   -------------+---------+------------+---------------------------------------------------------------------
   timescaledb | 2.17.2   | public     | Enables scalable inserts and complex queries for time-series data
   (1 row)
   ```

## Plan your upgrade path

Best practice is to always use the latest version of TimescaleDB. Subscribe to our releases on GitHub or use Tiger Cloud and always run the latest update without any hassle.

Check the following support matrix against the versions of TimescaleDB and PostgreSQL that you are running currently and the versions you want to update to, then choose your upgrade path.

For example, to upgrade from TimescaleDB 2.13.x on PostgreSQL 13 to TimescaleDB 2.25.x:

1. Upgrade TimescaleDB to 2.15.x (last version fully supporting PostgreSQL 13)
2. Upgrade PostgreSQL to 15, 16, 17, or 18
3. Upgrade TimescaleDB to 2.25.x

Older TimescaleDB versions may not be available in package repositories. If you need a specific intermediate version that is no longer packaged, you can build from source or upgrade directly to the latest version that supports your current PostgreSQL version before upgrading PostgreSQL.

You may need to upgrade to the latest PostgreSQL version before you upgrade TimescaleDB. Also, if you use [TimescaleDB Toolkit](/docs/deploy/self-hosted/tooling/install-toolkit/index.md), ensure the `timescaledb_toolkit` extension is >= v1.6.0 before you upgrade TimescaleDB extension.

Warning

PostgreSQL 15 support is deprecated and will be removed from TimescaleDB in June 2026.

| TimescaleDB version | PostgreSQL 18 | PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 | PostgreSQL 12 | PostgreSQL 11 | PostgreSQL 10 |
| ------------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
| 2.25.x              | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.24.x              | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.23.x              | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.22.x              | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.21.x              | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.20.x              | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             | ❌             |
| 2.17 - 2.19         | ❌             | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             |
| 2.16.x              | ❌             | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             | ❌             |
| 2.13 - 2.15         | ❌             | ❌             | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             |
| 2.12.x              | ❌             | ❌             | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             | ❌             |
| 2.10.x              | ❌             | ❌             | ❌             | ✅             | ✅             | ✅             | ✅             | ❌             | ❌             |
| 2.5 - 2.9           | ❌             | ❌             | ❌             | ❌             | ✅             | ✅             | ✅             | ❌             | ❌             |
| 2.4                 | ❌             | ❌             | ❌             | ❌             | ❌             | ✅             | ✅             | ❌             | ❌             |
| 2.1 - 2.3           | ❌             | ❌             | ❌             | ❌             | ❌             | ✅             | ✅             | ✅             | ❌             |
| 2.0                 | ❌             | ❌             | ❌             | ❌             | ❌             | ❌             | ✅             | ✅             | ❌             |
| 1.7                 | ❌             | ❌             | ❌             | ❌             | ❌             | ❌             | ✅             | ✅             | ✅             |

We recommend not using TimescaleDB with PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, 12.21. These minor versions [introduced a breaking binary interface change](https://www.postgresql.org/about/news/postgresql-172-166-1510-1415-1318-and-1222-released-2965/) that, once identified, was reverted in subsequent minor PostgreSQL versions 17.2, 16.6, 15.10, 14.15, 13.18, and 12.22. When you build from source, best practice is to build with PostgreSQL 17.2, 16.6, etc and higher. Users of Tiger Cloud and platform packages for Linux, Windows, MacOS, Docker, and Kubernetes are unaffected.

## Implement your upgrade path

1. **Upgrade TimescaleDB**

   ```
   psql -X -d $SOURCE -c "ALTER EXTENSION timescaledb UPDATE TO '<version number>';"
   ```

2. **If your migration path dictates it, upgrade PostgreSQL**

   Follow the procedure in [Upgrade PostgreSQL](/docs/deploy/self-hosted/upgrades/upgrade-pg/index.md). The version of TimescaleDB installed in your PostgreSQL deployment must be the same before and after the PostgreSQL upgrade.

3. **If your migration path dictates it, upgrade TimescaleDB again**

   ```
   psql -X -d $SOURCE -c "ALTER EXTENSION timescaledb UPDATE TO '<version number>';"
   ```

4. **Check that you have upgraded to the correct version of TimescaleDB**

   ```
   psql -X -d $SOURCE -c "\dx timescaledb;"
   ```

   PostgreSQL returns something like:

   Terminal window

   ```
   Name     | Version | Schema |                                      Description
   -------------+---------+--------+---------------------------------------------------------------------------------------
   timescaledb | 2.17.2  | public | Enables scalable inserts and complex queries for time-series data (Community Edition)
   ```

You are running a shiny new version of TimescaleDB.
