February 13, 2026
Install new versions
Install PostgreSQL itself:
sudo apt update
sudo apt install postgresql-18
Check if installation was successful:
ls /usr/lib/postgresql/
ls -la /var/lib/postgresql/
Install extensions:
sudo apt install postgresql-18-pgvector
curl -L "https://github.com/paradedb/paradedb/releases/download/v0.21.8/postgresql-18-pg-search_0.21.8-1PARADEDB-noble_amd64.deb" -o /tmp/pg_search.deb
sudo apt-get install -y /tmp/*.deb
rm /tmp/pg_search.deb
sudo apt install postgresql-18-postgis-3Migrate data
Check existing clusters
pg_lsclustersMigrate
sudo pg_dropcluster 18 main --stop
screen -S pg_upgrade
sudo pg_upgradecluster 17 mainPress Ctrl + a then d to detach screen. To re-attach:
screen -r pg_upgradeCtrl + d to close screen
Check again
pg_lsclustersUsually you're done at this point, all the steps below are optional to verify installation is complete and clean up leftovers.
a. Check that configs migrated cleanly
sudo diff -u /etc/postgresql/17/main/postgresql.conf \
/etc/postgresql/18/main/postgresql.conf
sudo diff -u /etc/postgresql/17/main/pg_hba.conf \
/etc/postgresql/18/main/pg_hba.conf
b. Copy old configs if needed
sudo cp /etc/postgresql/17/main/pg_hba.conf \
/etc/postgresql/18/main/pg_hba.conf
sudo cp /etc/postgresql/17/main/pg_ident.conf \
/etc/postgresql/18/main/pg_ident.confc. Upgrade extensions in place if needed
sudo -u postgres psql
SELECT version();
\dx
ALTER EXTENSION pgvector UPDATE;
ALTER EXTENSION pg_search UPDATE;
ALTER EXTENSION postgis UPDATE;Update your cert paths if needed
nano ./psql_rotate_certs.sh
nano /etc/postgresql/18/main/postgresql.conf
./psql_rotate_certs.shDrop old cluster
sudo apt remove postgresql-17
sudo apt autoremoveRestart and validate
sudo systemctl restart postgresql
sudo -u postgres psql -c "SHOW shared_buffers;"
apt-get update && apt-get full-upgrade -y && apt-get autoremove -y && apt-get clean
reboot nowDone!