Mise à jour de PostgreSQL sur Discourse

Discourse a intégré en cours de semaine dernière une mise à jour majeure (de la version 10.10 à 12.2) et cela nécessite une mise à jour depuis le terminal. Si la procédure est la plus sûre possible, il est vivement conseillé de faire une sauvegarde de votre forum (Admin > Sauvegardes) avant de vous lancer.

⚠️ Il vous faudra un espace disque assez important sur votre serveur pour pouvoir réussir cette mise à jour, comptez deux fois la taille de votre base de données. Si vous avez un doute, ne vous inquiétez pas, Discourse se chargera de vérifier s’il y a suffisamment d’espace avant de lancer la mise à jour de PostgreSQL.

Si vous remplissez les conditions, ouvrez votre terminal utilisant putty, mRemoteNG ou tout autre logiciel qui permet de vous connecter à votre serveur et lancez ensuite la procédure classique de mise à jour

cd /var/discourse
git pull
./launcher rebuild app

Cela va démarrer la mise à jour de PostgreSQL dans un premier temps

Si tout va bien vous aurez droit à ce bien bel écran :

Le plus dur est passé !

⚠️ Si vous avez une erreur à ce niveau-là ou si vous avez une installation non-classique (mutliple containers, etc), je ne peux que vous conseiller de prendre renseignement au niveau de Discourse : https://meta.discourse.org/t/postgresql-12-update/151236

Si tout va bien, vous pouvez suivre le conseil donné sur le terminal et relancer un ./launcher rebuild app

À présent, on retrouve la procédure de mise à jour classique qui dure quelques minutes et qui vous redonnera accès à votre site. Vérifiez que votre forum est revenu en bon état et vous pouvez lancer des procédures optionnelles pour optimiser votre base de données

cd /var/discourse
./launcher enter app
su postgres
psql
\connect discourse
VACUUM VERBOSE ANALYZE;

Et une fois le Vacuum terminé (ça prend de quelques secondes à de longues minutes selon la taille de votre forum)

REINDEX SCHEMA CONCURRENTLY public;

Cette étape devrait prendre quelques secondes seulement.

Quittez l’application en faisant ces commandes :

\q
exit
exit

J’ai lancé un Vacuum et réindexation avant de quitter postgresql. Tout s’est bien déroulé.

Et quand vous vous sentirez prêt, vous pourrez nettoyer la copie de l’ancienne base de données en lançant la commande suivante :

cd /var/discourse
./launcher cleanup app

Il faudra valider trois fois le nettoyage en tapant Y. Cela libérera de l’espace disque sur votre serveur, au cas où vous soyez un peu juste.

Terminez par un petit reboot, ça ne fait jamais de mal. Et voilà vous bénéficiez des avancées de PostgreSQL avec cette nouvelle version !

Auteur de l’article : Steven

Webmaster depuis 2003, j'ai œuvré en particulier sur des forums tournant sur phpBB avant de prendre le virage plus moderne avec Discourse en 2013 sur les conseils de mon associé sur iunctis.fr où je gère l'aspect technique. Ayant pas mal galéré au début, je propose des guides et mes services pour aider les débutants.

Laisser un commentaire