====== Mises à jour mineures ======
===== 9.0beta3 => 9.0.2 =====
Préparation classique :
cd /home/damien/
wget ftp://ftp4.fr.postgresql.org/pub/mirrors/postgresql/source/v9.0.2/postgresql-9.0.2.tar.gz
tar xzvf postgresql-9.0.2.tar.gz
cd postgresql-9.0.2/
./configure
make
Remplacement des anciens binaires :
sudo /etc/init.d/postgresql-9.0 stop
sudo cp -pr /usr/local/pgsql/bin/ /usr/local/pgsql/bin-9.0beta3/
sudo make install
Redémarrage
sudo /etc/init.d/postgresql-9.0 start
FAIL !
FATAL: database files are incompatible with server
DETAIL: The database cluster was initialized with CATALOG_VERSION_NO 201004261, but the server was compiled with CATALOG_VERSION_NO 201008051.
J'ai oublié que le format des données a changé entre la 9.0beta3 et la 9.0.2 !
c'est l'occasion de tester pg_upgrade :
cd ~/postgresql-9.0.2/contrib/pg_upgrade
make
sudo make install
cd ../pg_upgrade_support/
make
sudo make install
On sauvegarde l'ancien PGDATA et on en crée un nouveau :
sudo su - postgres
cd /var/lib/postgresql/
mv 9.0 9.0-beta3
mkdir 9.0
/usr/local/pgsql/bin/initdb -D /var/lib/postgresql/9.0/
Kowabonga !
/usr/local/pgsql/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/9.0-beta3/ \
--new-datadir=/var/lib/postgresql/9.0 \
--old-bindir=/usr/local/pgsql/bin-9.0beta3/ \
--new-bindir=/usr/local/pgsql/bin/ \
--old-port=543300 \
--new-port=543400
Il ne reste plus qu'à récupérer la conf :
cd /var/lib/postgresql/9.0
mv postgresql.conf postgresql.conf.orig
cp ../9.0-beta3/postgresql.conf .
mv pg_hba.conf pg_hba.conf.orig
cp ../9.0-beta3/pg_hba.conf .
et c'est reparti !
sudo /etc/init.d/postgresql-9.0 start
**Attention** : cela va péter la réplication vers Dumbo. Il faut donc faire la même opération sur Dumbo.