Discourse sur postgres 12 perturbe les mises à niveau

Nous utilisons PostgreSQL v12 car la mise à niveau vers v13 nécessite trop d’espace disque. Il semble que la compatibilité avec v12 ait pu être rompue ? Est-ce intentionnel ? Si c’est le cas, cela signifie que nous ne pourrons jamais mettre à jour Discourse à nouveau.

L’exécution de ./launcher start app nous a remis en ligne, donc ce n’est pas un problème de production pour l’instant, mais l’impossibilité de procéder à une mise à jour, même pour des raisons de sécurité, serait très problématique pour nous.

Dans app.yml :

  - "templates/postgres.12.template.yml"

Résultat de ./launcher rebuild app :

ÉCHEC
--------------------
Errno::ENOENT : Aucun fichier ou répertoire de ce type @ rb_sysopen - /etc/postgresql/13/main/pg_hba.conf
Emplacement de l'échec : /pups/lib/pups/replace_command.rb:8:in `read'
La commande de remplacement a échoué avec les paramètres {"filename" => "/etc/postgresql/13/main/pg_hba.conf", "from" => "/^host.*all.*all.*::1\\128.*$/", "to" => "host all all ::/0 md5"}
0ba8112e6efa1ac2dd75af8a1da8eea0937e7aefbca2df28b22d27e9608d1479
** ÉCHEC DU BOOTSTRAP ** Veuillez remonter et rechercher les messages d'erreur antérieurs, il peut y en avoir plusieurs.
./discourse-doctor peut aider à diagnostiquer le problème.

Version actuellement en cours d’exécution : 2.8.0.beta4 75b0d6df93.

il recherche PostgreSQL 13 et non 12.

{“filename” => “/etc/postgresql/13/main/pg_hba.conf”,

En effet. C’est là le problème.

Pourquoi ne pas faire une sauvegarde, créer une instance Discourse complètement nouvelle (qui devrait utiliser Postgres 13 par défaut), restaurer la sauvegarde et mettre à jour l’enregistrement DNS du serveur ?

2 « J'aime »

Ça fonctionnerait, oui. On essaie désespérément d’éviter d’en arriver là.

1 « J'aime »

Cela peut sembler effrayant, mais vous aurez suffisamment de mesures de sécurité en place ; vous pourrez toujours remettre l’ancien serveur en ligne.

1 « J'aime »

C’est moins effrayant que des tâches pénibles que j’aimerais éviter, combiné à devoir annoncer à mon forum qu’ils vont perdre un ou deux jours de publications. J’aimerais idéalement que l’équipe de Discourse réponde : « Bien sûr, nous travaillons toujours sur PG12, ce n’est qu’un bug, nous allons le corriger ».

Je ne vois pas pourquoi c’est nécessaire.

  1. Préparer un nouveau serveur sur un sous-domaine ?

  2. Passer le serveur existant en mode lecture seule et créer une sauvegarde

  3. Importer la sauvegarde sur le nouveau serveur

  4. Mettre à jour les enregistrements DNS

  5. Reconstruire le nouveau serveur avec le sous-domaine principal de Discourse.

Ce processus pourrait prendre 30 minutes ?

2 « J'aime »

Non, je gère un forum très important.

2 « J'aime »

Ah ! Un problème agréable à avoir ! :slight_smile:

Je suppose que ce n’est pas comme si j’étais payé ! :wink:

1 « J'aime »

Ah, je vois, c’est un bug introduit par une PR de la communauté. Comme nous n’utilisons pas PG12 nulle part, cela est passé inaperçu. Accordez-moi quelques minutes.

5 « J'aime »

Corrigé dans

Pourriez-vous essayer de reconstruire à nouveau, @Wingtip ?

Cela dit, nous n’exécutons plus PG12, nous pourrions donc introduire à tout moment dans le cœur du système une syntaxe SQL exclusive à PG13+. Il serait donc judicieux de planifier la mise à niveau un jour.

5 « J'aime »

Je vais jeter un coup d’œil juste après avoir pris un autre snapshot de ma VM.

C’est vraiment énervant que PG nécessite autant d’espace disque pour une mise à niveau. Je n’ai pas ce problème avec Oracle ou MySQL, qui se mettent à niveau directement sur place.

pg_upgrade offre un seul drapeau --link permettant des mises à jour sur place.

Nous avons choisi de ne pas l’utiliser dans notre script de mise à niveau « convivial pour les débutants », car 99 % des installations s’exécutent sur une machine virtuelle cloud où il est facile et peu coûteux d’augmenter la taille du disque.

Cependant, cette option reste disponible pour ceux qui préfèrent effectuer la mise à niveau manuellement afin d’économiser de l’espace disque pendant le processus.

1 « J'aime »

Deux solutions ont été proposées ; si ma mémoire est bonne, l’une nécessitait environ trois fois la taille totale de la base de données et l’autre environ deux fois. Si cela peut être fait in situ, documenter cette possibilité serait très utile.

Édité : La correction a fonctionné, merci !

2 « J'aime »

Oui, j’ai copié-collé sans réfléchir — désolé et merci de l’avoir corrigé !

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.