Mise à jour PostgreSQL 8.1 en 8.4 - 9.0
De wikiGite
Sauvegarde des bases existantes
Sauvegarder les bases, si nécessaire (sinon, supprimer purement et simplement le répertoire /var/lib/pgsql/data, il sera recréé à l'init)
Les "globales" d'abord :
mkdir /pgbak chown postgres:postgres /pgbak/ su - postgres pg_dumpall --globals-only > /pgbak/globals.sql pg_dump --create --oids --format=c --verbose --file=/pgbak/dbX dbX exit
Et sauvegarder les bases à froid (éteintes) :
/etc/init.d/postgresql stop mv /var/lib/pgsql/data /pgbak
PostgreSQL 8.4
Mettre à jour :
yum remove postgresql yum install postgresql84 postgresql84-server
Réinitialiser les bases système :
/etc/init.d/postgresql initdb
Restorer les fichiers de configuration à partir de /pgback/*.conf, faire les modification nécessaires (dans le pg_hba.conf notamment, des oprions ont changé : sameuser n'existe plus, remplacer password par md5).
Eventuellement :
chkconfig --level 35 postgresql on
Lancer postgresql
/etc/init.d/postgresql start
Restorer les rôles, et les bases de données :
su - postgres psql -f /pgbak/globals.sql pg_restore --create -d postgres /pgbak/dbX exit
PostgresSQL 9
Si PostgreSQL8 était déjà installé il faut l'avoir désinstallé avant (avec sauvegardes des bases) :
yum remove postgresql
ou
yum remove postgresql84
Installer le repository PostgreSQL conrrespondant à la version voulue (http://www.pgrpms.org/howtoyum.php) :
wget http://www.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
Désactiver le repo par défaut (enable=0 dans /etc/yum.repos.d/pgdg-90-centos.repo), puis :
yum --enablerepo=pgdg90 install postgresql90 postgresql90-server
Initialiser la base de données
/etc/init.d/postgresql-9.0 initdb
Les bases sont désormais dans /var/lib/pgsql/9.0/data
/etc/init.d/postgresql-9.0 start
Et restorer les bases :
su - postgres psql -f /pgbak/globals.sql pg_restore --create -d postgres /pgbak/dbX