=====About===== If you wish to switch from older PostgreSQL version to new one it is required to perform database cluster upgrade. Below is short instruction on how to proceed. We assume that you are upgrading from PostgreSQL 10 to 11 using default clusters (main). =====Preparation===== Before you'll try to upgrade PostgreSQL cluster you need to perform system upgrade to be sure that all required PostgreSQL libraries are up to date. First, use dry run to see what will be upgraded: poldek --up -t -v --upgrade-dist If everything seems ok perform an upgrade: poldek -v --upgrade-dist Now install new PostgreSQL packages (if you require modules or contrib package install them as well): poldek -i -v -h postgresql-11 postgresql-11-clients Initialize new PostgreSQL 11 cluster. If you need to create cluster with different locale (default is C) please adjust your configuration in ///etc/sysconfig/postgresql-11//: service postgresql-11 init Stop existing PostgreSQL 10 cluster that you wish to upgrade: service postgresql-10 stop Make sure that nothing can access your database. Easiest and fastest way to do this is to temporarily change database ports for both old and new cluster. Edit pg_hba.conf of PostgreSQL 10 cluster and temporarily set authentication method to //trust// so you don't have to provide password during upgrade. =====Upgrade===== PostgreSQL comes with special tool for performing cluster upgrade - //pg_upgrade//. It requires to be run under postgres user so lets login to postgres account: su - postgres Run pg_upgrade (if you are running 32-bit system, replace ///usr/lib64// with ///usr/lib//): /usr/lib64/postgresql/11/bin/pg_upgrade -b /usr/lib64/postgresql/10/bin/ -B /usr/lib64/postgresql/11/bin/ -d /var/lib/postgresql/10/main/ -D /var/lib/postgresql/11/main/ Sometimes upgrade may fail if there are some changes in new version that break backward compatibility. In such cases you'll need to fix all issuses in existing PostgreSQL 10 cluster, drop and recreate PostgreSQL 11 cluster and try to run pg_upgrade again. If upgrade was successfull remember to update your //postgresql.conf// and //pg_hba.conf// in ///var/lib/postgresql/11/main// so they reflect configuration of old PostgreSQL 10 cluster. Also do not forget to change authentication method from //trust// to whatever you are using.