--- title: Upgrading ParadeDB --- ## Overview ParadeDB ships its functionality inside a Postgres extension, `pg_search`. Upgrading ParadeDB is as simple as updating the `pg_search` extension. ParadeDB uses `pgvector` for vector search. This extension is not managed by ParadeDB. Please refer to the [pgvector documentation](https://github.com/pgvector/pgvector?tab=readme-ov-file#upgrading) for instructions on how to upgrade it. ## Getting the Current Version To inspect the current version of an extension, run the following command. ```sql SELECT extversion FROM pg_extension WHERE extname = 'pg_search'; ``` Verify that it matches `paradedb.version_info()`: ```sql SELECT * FROM paradedb.version_info(); ``` The reason that there are two statements is because `paradedb.version_info()` is the actual version of `pg_search` that is installed, whereas `pg_extension` is what Postgres' catalog thinks the version of the extension is. If `paradedb.version_info()` is greater than `pg_extension`, it typically means that `ALTER EXTENSION` was not run after the previous upgrade, and that the SQL upgrade scripts were not applied. If `pg_extension` is greater than `paradedb.version_info()`, it means that the extension didn't fully upgrade, and that Postgres needs to be restarted. ## Getting the Latest Version The latest version of `pg_search` is `0.15.13`. Please refer to the [releases](https://github.com/paradedb/paradedb/releases) page for all available versions of `pg_search`. ## Updating ParadeDB ### Helm Chart To upgrade the ParadeDB Helm chart: 1. Update the `paradedb` chart to the latest version. ```bash helm repo update ``` 2. Get the latest version of the `paradedb` chart. ```bash helm search repo paradedb ``` 3. Get the latest version of the ParadeDB extension, which is the value of `version.paradedb` in the chart [README](https://github.com/paradedb/charts/tree/dev/charts/paradedb#values). 4. Run `helm upgrade` with the latest version of the chart and the latest version of the extension. ```bash helm upgrade paradedb paradedb/paradedb --namespace paradedb --reuse-values --version --set version.paradedb= --atomic ``` Replace `` with the latest version of the chart and `` with the latest version of the extension. 5. If you are using [ParadeDB BYOC](/deploy/byoc), an automatic rollout will begin. One by one, the pods will be restarted to apply the new version of the extension. ### Docker Image To upgrade the ParadeDB Docker image while preserving your data volume: 1. Stop the ParadeDB Docker image via `docker stop paradedb`. 2. Run the following command to pull a specific version of the Docker image. You can set the version number to `latest` to pull the latest Docker image. You can find the full list of available tags on [Docker Hub](https://hub.docker.com/r/paradedb/paradedb/tags). ```bash docker pull paradedb/paradedb:0.15.13 ``` The latest version of the Docker image should be `0.15.13`. 3. Start the new ParadeDB Docker image via `docker run paradedb`. ### Self-Managed Postgres To upgrade the extensions running in a self-managed Postgres: 1. Stop Postgres (e.g. `pg_ctl stop -D `). 2. Download and install the extension you wish to upgrade in the same way that it was initially installed. 3. Start Postgres (e.g. `pg_ctl start -D `). ## Alter Extension After ParadeDB has been upgraded, connect to it and run the following command in all databases that `pg_search` is installed in. This step is required regardless of the environment that ParadeDB is installed in (Helm, Docker, or self-managed Postgres). ```sql ALTER EXTENSION pg_search UPDATE TO '0.15.13'; ``` ## Verify the Upgrade After upgrading the extension and restarting Postgres, verify that the version numbers returned by the following commands match: ```sql SELECT extversion FROM pg_extension WHERE extname = 'pg_search'; SELECT * FROM paradedb.version_info(); ``` If the two versions do not match, restart Postgres and try again.