Nous voulions utiliser l'option --link (ou -k) de pg_upgrade pour faire un upgrade plus rapide de notre base de données.
Pour tous les autres wrappers, il suffit de fournir l'option de l'outil postgreSQL au wrapper et le tour est joué. C'est ce que nous avons fait mais, là, les temps étaient très très longs.
Après avoir regardé la doc et le code, nous avons découvert que pg_upgradecluster utilise par défaut pg_dump pour faire un upgrade. Notre option -k n'était donc pas prise en compte...
Manquant de temps, nous avons donc fait l'upgrade à la main (création du nouveau cluster, arrêt des deux instances, lancement de pg_upgrade avec l'option -k).
Depuis, j'ai pu regarder pg_upgradecluster et j'ai pu confirmer que la ligne suivante fonctionne.
pg_upgradecluster -v 9.6 9.5 main -m upgrade -k
Voici la procédure sous Debian pour faire un upgrade (on peut utiliser l'option -m dump pour faire des sauts de version majeure).- Installation de la nouvelle version
- Suppression du cluster main
- Lancement de l'upgrade
sudo apt-get install postgresql-9.6
sudo pg_dropcluster 9.6 main
sudo pg_upgradecluste -v 9.6 9.5 main -m upgrade
La documentation de pg_upgrade est là.
Le code source de pg_upgradecluster est ici (et n'hésitez pas à regarder la man page).