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.