Durante la ricostruzione, Discourse rimuove PostGreSQL 10 e reinstalla la versione 9.5

Quando provo a usare il comando ./launcher rebuild app, sembra che lo script rimuova PostgreSQL v10 già installato e tenti di reinstallare la versione 9.5, bloccando l’esecuzione dello script durante l’esecuzione delle query.

./launcher rebuild app
Assicurando che il launcher sia aggiornato
Recupero dell'origin
Il launcher è aggiornato
Arresto del contenitore precedente
+ /usr/bin/docker stop -t 10 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Già aggiornato.
I, [2020-05-08T10:12:43.767891 #1]  INFO -- : Caricamento di --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 -- : Lettura delle liste dei pacchetti...
Creazione dell'albero delle dipendenze...
Lettura delle informazioni sullo stato...
I seguenti pacchetti verranno RIMOSSI:
  postgresql-10 postgresql-client-10
0 aggiornati, 0 installati di nuovo, 2 da rimuovere e 0 non aggiornati.
Dopo questa operazione, saranno liberati 30,6 MB di spazio su disco.
(Lettura del database ... 42938 file e directory attualmente installati.)
Rimozione di postgresql-10 (10.12-2.pgdg100+1) ...
invoke-rc.d: impossibile determinare il livello di esecuzione corrente
invoke-rc.d: policy-rc.d ha negato l'esecuzione di stop.
Rimozione di postgresql-client-10 (10.12-2.pgdg100+1) ...
Elaborazione dei trigger per postgresql-common (213.pgdg100+1) ...
Creazione dei dizionari PostgreSQL dai pacchetti myspell/hunspell installati...
Rimozione dei file di dizionario obsoleti:

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: ritardo nella configurazione del pacchetto, poiché apt-utils non è installato
I, [2020-05-08T10:12:57.347153 #1]  INFO -- : Get:1 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB]
Hit:2 http://deb.debian.org/debian buster InRelease
Get:3 http://deb.debian.org/debian buster-updates InRelease [49,3 kB]
Get:4 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84,4 kB]
Hit:5 https://deb.nodesource.com/node_10.x buster InRelease
Get:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [197 kB]
Get:7 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [168 kB]
Scaricati 564 kB in 1s (543 kB/s)
Lettura delle liste dei pacchetti...
Lettura delle liste dei pacchetti...
Creazione dell'albero delle dipendenze...
Lettura delle informazioni sullo stato...
Suggerimenti:
  postgresql-doc-9.5 libdbd-pg-perl
I seguenti NUOVI pacchetti verranno installati:
  postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 aggiornati, 3 installati di nuovo, 0 da rimuovere e 0 non aggiornati.
È necessario scaricare 5.700 kB di archivi.
Dopo questa operazione, saranno utilizzati 27,2 MB di spazio su disco aggiuntivo.
Get: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 kB]
Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-9.5 amd64 9.5.21-2.pgdg100+1 [3.988 kB]
Get:3 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-contrib-9.5 amd64 9.5.21-2.pgdg100+1 [463 kB]
Scaricati 5.700 kB in 0s (30,5 MB/s)
Selezione del pacchetto precedentemente non selezionato postgresql-client-9.5.
(Lettura del database ... 42096 file e directory attualmente installati.)
Preparazione per lo unpacking di .../postgresql-client-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Unpacking di postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
Selezione del pacchetto precedentemente non selezionato postgresql-9.5.
Preparazione per lo unpacking di .../postgresql-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Unpacking di postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Selezione del pacchetto precedentemente non selezionato postgresql-contrib-9.5.
Preparazione per lo unpacking di .../postgresql-contrib-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Unpacking di postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Configurazione di postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
update-alternatives: utilizzo di /usr/share/postgresql/9.5/man/man1/psql.1.gz per fornire /usr/share/man/man1/psql.1.gz (psql.1.gz) in modalità automatica
Configurazione di postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Creazione del nuovo 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
I file appartenenti a questo sistema di database saranno di proprietà dell'utente "postgres".
Questo utente deve anche possedere il processo del server.

Il cluster del database verrà inizializzato con la localizzazione "C.UTF-8".
La codifica predefinita del database è stata impostata di conseguenza su "UTF8".
La configurazione predefinita della ricerca testuale sarà impostata su "inglese".

I checksum delle pagine dei dati sono disabilitati.

Correzione dei permessi sulla directory esistente /var/lib/postgresql/9.5/main ... ok
Creazione delle sottodirectory ... ok
Selezione di max_connections predefinito ... 100
Selezione di shared_buffers predefinito ... 128MB
Selezione del fuso orario predefinito ... Etc/UTC
Selezione dell'implementazione della memoria condivisa dinamica ... posix
Creazione dei file di configurazione ... ok
Creazione del database template1 in /var/lib/postgresql/9.5/main/base/1 ... ok
Inizializzazione di pg_authid ... ok
Inizializzazione delle dipendenze ... ok
Creazione delle viste di sistema ... ok
Caricamento delle descrizioni degli oggetti di sistema ... ok
Creazione delle collazioni ... ok
Creazione delle conversioni ... ok
Creazione dei dizionari ... ok
Impostazione dei privilegi sugli oggetti incorporati ... ok
Creazione dello schema delle informazioni ... ok
Caricamento del linguaggio lato server PL/pgSQL ... ok
Vacuum del database template1 ... ok
Copia di template1 in template0 ... ok
Copia di template1 in postgres ... ok
Sincronizzazione dei dati su disco ... ok

Successo. Ora puoi avviare il server del database utilizzando:

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

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 down   postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
update-alternatives: utilizzo di /usr/share/postgresql/9.5/man/man1/postmaster.1.gz per fornire /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in modalità automatica
invoke-rc.d: impossibile determinare il livello di esecuzione corrente
invoke-rc.d: policy-rc.d ha negato l'esecuzione di start.
Configurazione di postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Elaborazione dei trigger per postgresql-common (213.pgdg100+1) ...
Creazione dei dizionari PostgreSQL dai pacchetti myspell/hunspell installati...
Rimozione dei file di dizionario obsoleti:

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 già in esecuzione stop container ; exit 1
2020/05/08 10:12:57 socat[1583] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): File o directory non esistente
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 -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-05-08T10:12:57.408202 #1]  INFO -- : File > /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 -- : Sostituzione di data_directory = '/var/lib/postgresql/9.5/main' con data_directory = '/shared/postgres_data' in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.469564 #1]  INFO -- : Sostituzione di (?-mix:#?listen_addresses *=.*) con listen_addresses = '*' in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.470341 #1]  INFO -- : Sostituzione di (?-mix:#?synchronous_commit *=.*) con synchronous_commit = $db_synchronous_commit in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471161 #1]  INFO -- : Sostituzione di (?-mix:#?shared_buffers *=.*) con shared_buffers = $db_shared_buffers in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471959 #1]  INFO -- : Sostituzione di (?-mix:#?work_mem *=.*) con work_mem = $db_work_mem in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.472759 #1]  INFO -- : Sostituzione di (?-mix:#?default_text_search_config *=.*) con default_text_search_config = '$db_default_text_search_config' in /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 -- : Sostituzione di (?-mix:#?max_wal_senders *=.*) con max_wal_senders = $db_max_wal_senders in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.479383 #1]  INFO -- : Sostituzione di (?-mix:#?wal_level *=.*) con wal_level = $db_wal_level in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.480297 #1]  INFO -- : Sostituzione di (?-mix:#?checkpoint_segments *=.*) con checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481086 #1]  INFO -- : Sostituzione di (?-mix:#?logging_collector *=.*) con logging_collector = $db_logging_collector in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481922 #1]  INFO -- : Sostituzione di (?-mix:#?log_min_duration_statement *=.*) con log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.482800 #1]  INFO -- : Sostituzione di (?-mix:^#local +replication +postgres +peer$) con local replication postgres  peer in /etc/postgresql/9.5/main/pg_hba.conf
I, [2020-05-08T10:12:57.483651 #1]  INFO -- : Sostituzione di (?-mix:^host.*all.*all.*127.*$) con host all all 0.0.0.0/0 md5 in /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:  il sistema di database è stato spento alle 2020-05-08 10:04:26 UTC
2020-05-08 10:12:57.556 UTC [1602] LOG:  le protezioni per il wraparound dei membri MultiXact sono ora abilitate
2020-05-08 10:12:57.560 UTC [1599] LOG:  il sistema di database è pronto ad accettare connessioni
2020-05-08 10:12:57.561 UTC [1606] LOG:  avvio del lanciatore autovacuum
I, [2020-05-08T10:13:02.496896 #1]  INFO -- :
I, [2020-05-08T10:13:02.497338 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
Errore: la versione 10 di PostgreSQL non è installata
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
Errore: la versione 10 di PostgreSQL non è installata
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
Errore: la versione 10 di PostgreSQL non è installata
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;"'
Errore: la versione 10 di PostgreSQL non è installata
I, [2020-05-08T10:13:02.784568 #1]  INFO -- :
I, [2020-05-08T10:13:02.785461 #1]  INFO -- : Terminazione dei processi asincroni
I, [2020-05-08T10:13:02.785916 #1]  INFO -- : Invio di INT a 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:  ricevuta richiesta di arresto rapido
2020-05-08 10:13:02.786 UTC [1599] LOG:  annullamento di tutte le transazioni attive
2020-05-08 10:13:02.787 UTC [1606] LOG:  arresto del lanciatore autovacuum
2020-05-08 10:13:02.793 UTC [1603] LOG:  arresto in corso
2020-05-08 10:13:02.798 UTC [1603] LOG:  il sistema di database è spento


FALLITO
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' fallito con ritorno #<Process::Status: pid 1617 exit 1>
Posizione dell'errore: /pups/lib/pups/exec_command.rb:112:in `spawn'
Esecuzione fallita con i parametri "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
7830e2259ebf66011b6d9f2882ecfc3d204f354ee965ccdc06126682b0fab6d1
** FALLITO L'AVVIO ** scorri verso l'alto e cerca i messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor può aiutare a diagnosticare il problema.

Come e quando hai installato Discourse?

Installazione classica, su un droplet di Digital Ocean, utilizzando questo metodo discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(Almeno 2 anni fa, ma ho apportato molti aggiornamenti; questa istanza è alla versione 2.5.0b3 e sto tentando di aggiornare alla beta 4)

Puoi condividere le prime righe del tuo app.yml?

Quelle sotto templates.

Hai ragione, la riga seguente era all’inizio di app.yml
"templates/postgres.9.5.template.yml"
L’ho sostituita con:
"templates/postgres.template.yml"
Dopo questa modifica, il primo rebuild ha aggiornato il mio database Postgres
Il secondo rebuild è attualmente in esecuzione, ma sembra funzionare :slight_smile:

Grazie a tutti!

Quindi hai cambiato quella impostazione in 9.5 più di due anni fa e te ne sei dimenticato.

Bene, proprio in tempo, l’aggiornamento a PostgreSQL 12 sta arrivando molto presto. Meta lo sta già utilizzando.

Sembra di sì :slight_smile: Grazie per il tuo aiuto, @Falco!