Lors de la reconstruction, Discourse supprime PostgreSQL 10 et réinstalle la version 9.5

Lorsque j’essaie d’exécuter la commande ./launcher rebuild app, il semble que le script supprime PostgreSQL v10 déjà installé et tente de réinstaller la version 9.5, ce qui bloque l’exécution du script sur les requêtes.

./launcher rebuild app
Vérification que le lanceur est à jour
Récupération de origin
Le lanceur est à jour
Arrêt de l'ancien conteneur
+ /usr/bin/docker stop -t 10 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Déjà à jour.
I, [2020-05-08T10:12:43.767891 #1]  INFO -- : Chargement de --stdin
I, [2020-05-08T10:12:43.782184 #1]  INFO -- : > apt-get remove -y postgresql-10 postgresql-client-10 postgresql-contrib-10
I, [2020-05-08T10:12:46.569346 #1]  INFO -- : Lecture des listes de paquets...
Construction de l'arbre des dépendances...
Lecture des informations d'état...
Les paquets suivants seront SUPPRIMÉS :
  postgresql-10 postgresql-client-10
0 mis à jour, 0 nouvellement installés, 2 à supprimer et 0 non mis à jour.
Après cette opération, 30,6 Mo d'espace disque seront libérés.
(Lecture de la base de données ... 42938 fichiers et répertoires actuellement installés.)
Suppression de postgresql-10 (10.12-2.pgdg100+1) ...
invoke-rc.d : impossible de déterminer le niveau d'exécution actuel
invoke-rc.d : la politique policy-rc.d a refusé l'exécution de l'arrêt.
Suppression de postgresql-client-10 (10.12-2.pgdg100+1) ...
Traitement des déclencheurs pour postgresql-common (213.pgdg100+1) ...
Construction des dictionnaires PostgreSQL à partir des paquets myspell/hunspell installés...
Suppression des fichiers de dictionnaire obsolètes :

I, [2020-05-08T10:12:46.570949 #1]  INFO -- : > apt-get update && apt-get install -y postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
debconf : report de la configuration du paquet, car apt-utils n'est pas installé
I, [2020-05-08T10:12:57.347153 #1]  INFO -- : Récupération de 1 http://security.debian.org/debian-security buster/updates InRelease [65,4 ko]
Récupération de 2 http://deb.debian.org/debian buster InRelease
Récupération de 3 http://deb.debian.org/debian buster-updates InRelease [49,3 ko]
Récupération de 4 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84,4 ko]
Récupération de 5 https://deb.nodesource.com/node_10.x buster InRelease
Récupération de 6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [197 ko]
Récupération de 7 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [168 ko]
564 ko récupérés en 1s (543 ko/s)
Lecture des listes de paquets...
Lecture des listes de paquets...
Construction de l'arbre des dépendances...
Lecture des informations d'état...
Paquets suggérés :
  postgresql-doc-9.5 libdbd-pg-perl
Les paquets NOUVEAUX suivants seront installés :
  postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 mis à jour, 3 nouvellement installés, 0 à supprimer et 0 non mis à jour.
Nécessite 5 700 ko d'archives.
Après cette opération, 27,2 Mo d'espace disque supplémentaires seront utilisés.
Récupération de 1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-9.5 amd64 9.5.21-2.pgdg100+1 [1 249 ko]
Récupération de 2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-9.5 amd64 9.5.21-2.pgdg100+1 [3 988 ko]
Récupération de 3 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-contrib-9.5 amd64 9.5.21-2.pgdg100+1 [463 ko]
5 700 ko récupérés en 0s (30,5 Mo/s)
Sélection du paquet postgresql-client-9.5 précédemment non sélectionné.
(Lecture de la base de données ... 42096 fichiers et répertoires actuellement installés.)
Préparation du dépaquetage de .../postgresql-client-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Dépaquetage de postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
Sélection du paquet postgresql-9.5 précédemment non sélectionné.
Préparation du dépaquetage de .../postgresql-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Dépaquetage de postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Sélection du paquet postgresql-contrib-9.5 précédemment non sélectionné.
Préparation du dépaquetage de .../postgresql-contrib-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Dépaquetage de postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Configuration de postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
update-alternatives : utilisation de /usr/share/postgresql/9.5/man/man1/psql.1.gz pour fournir /usr/share/man/man1/psql.1.gz (psql.1.gz) en mode automatique
Configuration de postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Création du nouveau cluster PostgreSQL 9.5/main ...
/usr/lib/postgresql/9.5/bin/initdb -D /var/lib/postgresql/9.5/main --auth-local peer --auth-host md5
Les fichiers appartenant à ce système de base de données seront détenus par l'utilisateur « postgres ».
Cet utilisateur doit également posséder le processus serveur.

Le cluster de base de données sera initialisé avec la locale « C.UTF-8 ».
Le codage par défaut de la base de données a été défini en conséquence sur « UTF8 ».
La configuration par défaut de recherche textuelle sera définie sur « english ».

Les sommes de contrôle des pages de données sont désactivées.

Correction des permissions sur le répertoire existant /var/lib/postgresql/9.5/main ... ok
Création des sous-répertoires ... ok
Sélection de max_connections par défaut ... 100
Sélection de shared_buffers par défaut ... 128Mo
Sélection du fuseau horaire par défaut ... Etc/UTC
Sélection de l'implémentation de mémoire partagée dynamique ... posix
Création des fichiers de configuration ... ok
Création de la base de données template1 dans /var/lib/postgresql/9.5/main/base/1 ... ok
Initialisation de pg_authid ... ok
Initialisation des dépendances ... ok
Création des vues système ... ok
Chargement des descriptions des objets système ... ok
Création des collations ... ok
Création des conversions ... ok
Création des dictionnaires ... ok
Définition des privilèges sur les objets intégrés ... ok
Création du schéma d'information ... ok
Chargement du langage côté serveur PL/pgSQL ... ok
Vacuum de la base de données template1 ... ok
Copie de template1 vers template0 ... ok
Copie de template1 vers postgres ... ok
Synchronisation des données sur le disque ... ok

Succès. Vous pouvez maintenant démarrer le serveur de base de données en utilisant :

    /usr/lib/postgresql/9.5/bin/pg_ctl -D /var/lib/postgresql/9.5/main -l logfile start

Ver Cluster Port Statut Propriétaire Répertoire de données               Fichier journal
9.5 main    5433 arrêté postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
update-alternatives : utilisation de /usr/share/postgresql/9.5/man/man1/postmaster.1.gz pour fournir /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) en mode automatique
invoke-rc.d : impossible de déterminer le niveau d'exécution actuel
invoke-rc.d : la politique policy-rc.d a refusé l'exécution du démarrage.
Configuration de postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Traitement des déclencheurs pour postgresql-common (213.pgdg100+1) ...
Construction des dictionnaires PostgreSQL à partir des paquets myspell/hunspell installés...
Suppression des fichiers de dictionnaire obsolètes :

I, [2020-05-08T10:12:57.348808 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-05-08T10:12:57.352684 #1]  INFO -- :
I, [2020-05-08T10:12:57.353381 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-05-08T10:12:57.357476 #1]  INFO -- :
I, [2020-05-08T10:12:57.358473 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-05-08T10:12:57.362147 #1]  INFO -- :
I, [2020-05-08T10:12:57.362866 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-05-08T10:12:57.366500 #1]  INFO -- :
I, [2020-05-08T10:12:57.367283 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-05-08T10:12:57.370661 #1]  INFO -- :
I, [2020-05-08T10:12:57.371341 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres déjà en cours d'exécution, arrêt du conteneur ; exit 1
2020/05/08 10:12:57 socat[1583] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36) : Aucun fichier ou répertoire de ce type
I, [2020-05-08T10:12:57.378628 #1]  INFO -- :
I, [2020-05-08T10:12:57.379219 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-05-08T10:12:57.382871 #1]  INFO -- :
I, [2020-05-08T10:12:57.383391 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-05-08T10:12:57.387099 #1]  INFO -- :
I, [2020-05-08T10:12:57.387666 #1]  INFO -- : > mkdir -p /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2020-05-08T10:12:57.390634 #1]  INFO -- :
I, [2020-05-08T10:12:57.391391 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2020-05-08T10:12:57.394278 #1]  INFO -- :
I, [2020-05-08T10:12:57.401477 #1]  INFO -- : Fichier > /etc/service/postgres/run  chmod : +x  chown :
I, [2020-05-08T10:12:57.408202 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod : +x  chown :
I, [2020-05-08T10:12:57.409009 #1]  INFO -- : > chown -R root /var/lib/postgresql/9.5/main
I, [2020-05-08T10:12:57.422867 #1]  INFO -- :
I, [2020-05-08T10:12:57.423930 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/9.5/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-05-08T10:12:57.426672 #1]  INFO -- :
I, [2020-05-08T10:12:57.427242 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-05-08T10:12:57.462928 #1]  INFO -- :
I, [2020-05-08T10:12:57.464158 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-05-08T10:12:57.467828 #1]  INFO -- :
I, [2020-05-08T10:12:57.468624 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/9.5/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.469564 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.470341 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471161 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471959 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.472759 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.473527 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-05-08T10:12:57.477638 #1]  INFO -- :
I, [2020-05-08T10:12:57.478527 #1]  INFO -- : Remplacement de (?-mix:#?max_wal_senders *=.*) par max_wal_senders = $db_max_wal_senders dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.479383 #1]  INFO -- : Remplacement de (?-mix:#?wal_level *=.*) par wal_level = $db_wal_level dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.480297 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481086 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481922 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.482800 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres peer dans /etc/postgresql/9.5/main/pg_hba.conf
I, [2020-05-08T10:12:57.483651 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/9.5/main/pg_hba.conf
I, [2020-05-08T10:12:57.484408 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/9.5/bin/postmaster -D /etc/postgresql/9.5/main
I, [2020-05-08T10:12:57.486842 #1]  INFO -- : > sleep 5
2020-05-08 10:12:57.553 UTC [1602] LOG:  le système de base de données a été arrêté à 2020-05-08 10:04:26 UTC
2020-05-08 10:12:57.556 UTC [1602] LOG:  les protections contre le dépassement des membres MultiXact sont maintenant activées
2020-05-08 10:12:57.560 UTC [1599] LOG:  le système de base de données est prêt à accepter des connexions
2020-05-08 10:12:57.561 UTC [1606] LOG:  le lanceur autovacuum a démarré
I, [2020-05-08T10:13:02.496896 #1]  INFO -- :
I, [2020-05-08T10:13:02.497338 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
Erreur : La version 10 de PostgreSQL n'est pas installée
I, [2020-05-08T10:13:02.581202 #1]  INFO -- :
I, [2020-05-08T10:13:02.581940 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
Erreur : La version 10 de PostgreSQL n'est pas installée
I, [2020-05-08T10:13:02.646709 #1]  INFO -- :
I, [2020-05-08T10:13:02.647394 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
Erreur : La version 10 de PostgreSQL n'est pas installée
I, [2020-05-08T10:13:02.719733 #1]  INFO -- :
I, [2020-05-08T10:13:02.720430 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
Erreur : La version 10 de PostgreSQL n'est pas installée
I, [2020-05-08T10:13:02.784568 #1]  INFO -- :
I, [2020-05-08T10:13:02.785461 #1]  INFO -- : Terminaison des processus asynchrones
I, [2020-05-08T10:13:02.785916 #1]  INFO -- : Envoi de INT à HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/9.5/bin/postmaster -D /etc/postgresql/9.5/main pid: 1599
2020-05-08 10:13:02.786 UTC [1599] LOG:  demande d'arrêt rapide reçue
2020-05-08 10:13:02.786 UTC [1599] LOG:  annulation de toutes les transactions actives
2020-05-08 10:13:02.787 UTC [1606] LOG:  arrêt du lanceur autovacuum
2020-05-08 10:13:02.793 UTC [1603] LOG:  arrêt en cours
2020-05-08 10:13:02.798 UTC [1603] LOG:  le système de base de données est arrêté


ÉCHEC
--------------------
Pups::ExecError : la commande su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' a échoué avec le retour #<Process::Status: pid 1617 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
Exécution échouée avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
7830e2259ebf66011b6d9f2882ecfc3d204f354ee965ccdc06126682b0fab6d1
** ÉCHEC DE L'INITIALISATION ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Comment et quand avez-vous installé Discourse ?

Installation classique, sur un droplet Digital Ocean, en utilisant cette méthode discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(Cela fait au moins 2 ans, mais j’ai effectué de nombreuses mises à jour ; cette instance est actuellement sur la version 2.5.0b3 et je tente de passer à la bêta 4)

Pourriez-vous s’il vous plaît partager les premières lignes de votre app.yml ?

Celles qui se trouvent sous templates.

Vous avez raison, la ligne suivante se trouvait au début de app.yml
"templates/postgres.9.5.template.yml"
Je l’ai remplacée par :
"templates/postgres.template.yml"
La première reconstruction après ce changement a mis à jour ma base de données Postgres
Et la deuxième reconstruction est en cours, mais elle semble fonctionner :slight_smile:

Merci à tous !

Donc vous avez changé cela pour 9.5 il y a plus de deux ans et vous l’avez oublié.

Eh bien, juste à temps, la mise à niveau vers PostgreSQL 12 arrive très bientôt. Meta l’utilise déjà.

Ça semble être le cas :slight_smile: Merci pour ton aide, @Falco !