Ao reconstruir, o Discourse remove o PostGreSQL 10 e reinstala a versão 9.5

Quando tento usar o comando ./launcher rebuild app, parece que o script remove o PostgreSQL v10 já instalado e tenta reinstalar a versão 9.5, bloqueando a execução do script durante as consultas.

./launcher rebuild app
Garantindo que o launcher está atualizado
Buscando origem
Launcher está atualizado
Parando o container antigo
+ /usr/bin/docker stop -t 10 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Já está atualizado.
I, [2020-05-08T10:12:43.767891 #1]  INFO -- : Carregando --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 -- : Lendo listas de pacotes...
Construindo árvore de dependências...
Lendo informações de estado...
Os seguintes pacotes serão REMOVIDOS:
  postgresql-10 postgresql-client-10
0 atualizados, 0 novos instalados, 2 a remover e 0 não atualizados.
Após esta operação, 30,6 MB de espaço em disco serão liberados.
(Lendo banco de dados ... 42938 arquivos e diretórios atualmente instalados.)
Removendo postgresql-10 (10.12-2.pgdg100+1) ...
invoke-rc.d: não foi possível determinar o nível de execução atual
invoke-rc.d: a política-rc.d negou a execução de stop.
Removendo postgresql-client-10 (10.12-2.pgdg100+1) ...
Processando gatilhos para postgresql-common (213.pgdg100+1) ...
Construindo dicionários PostgreSQL a partir dos pacotes myspell/hunspell instalados...
Removendo arquivos de dicionário obsoletos:

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: adiando configuração de pacote, pois apt-utils não está instalado
I, [2020-05-08T10:12:57.347153 #1]  INFO -- : Obter:1 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB]
Hit:2 http://deb.debian.org/debian buster InRelease
Obter:3 http://deb.debian.org/debian buster-updates InRelease [49,3 kB]
Obter: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
Obter:6 http://security.debian.org/debian-security buster/updates/main amd64 Pacotes [197 kB]
Obter:7 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Pacotes [168 kB]
Baixados 564 kB em 1s (543 kB/s)
Lendo listas de pacotes...
Lendo listas de pacotes...
Construindo árvore de dependências...
Lendo informações de estado...
Pacotes sugeridos:
  postgresql-doc-9.5 libdbd-pg-perl
Os seguintes NOVOS pacotes serão instalados:
  postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 atualizados, 3 novos instalados, 0 a remover e 0 não atualizados.
É necessário baixar 5.700 kB de arquivos.
Após esta operação, 27,2 MB de espaço adicional em disco serão usados.
Obter: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]
Obter: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]
Obter: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]
Baixados 5.700 kB em 0s (30,5 MB/s)
Selecionando pacote previamente não selecionado postgresql-client-9.5.
(Lendo banco de dados ... 42096 arquivos e diretórios atualmente instalados.)
Preparando para descompactar .../postgresql-client-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Descompactando postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
Selecionando pacote previamente não selecionado postgresql-9.5.
Preparando para descompactar .../postgresql-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Descompactando postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Selecionando pacote previamente não selecionado postgresql-contrib-9.5.
Preparando para descompactar .../postgresql-contrib-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Descompactando postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Configurando postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
update-alternatives: usando /usr/share/postgresql/9.5/man/man1/psql.1.gz para fornecer /usr/share/man/man1/psql.1.gz (psql.1.gz) no modo automático
Configurando postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Criando novo 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
Os arquivos pertencentes a este sistema de banco de dados serão de propriedade do usuário "postgres".
Este usuário também deve ser o proprietário do processo do servidor.

O cluster de banco de dados será inicializado com o local "C.UTF-8".
A codificação padrão do banco de dados foi definida como "UTF8".
A configuração padrão de pesquisa de texto será definida como "inglês".

Checksums de páginas de dados estão desabilitados.

Corrigindo permissões no diretório existente /var/lib/postgresql/9.5/main ... ok
Criando subdiretórios ... ok
Selecionando max_connections padrão ... 100
Selecionando shared_buffers padrão ... 128MB
Selecionando fuso horário padrão ... Etc/UTC
Selecionando implementação de memória compartilhada dinâmica ... posix
Criando arquivos de configuração ... ok
Criando banco de dados template1 em /var/lib/postgresql/9.5/main/base/1 ... ok
Inicializando pg_authid ... ok
Inicializando dependências ... ok
Criando visualizações do sistema ... ok
Carregando descrições de objetos do sistema ... ok
Criando colações ... ok
Criando conversões ... ok
Criando dicionários ... ok
Definindo privilégios em objetos incorporados ... ok
Criando esquema de informações ... ok
Carregando linguagem PL/pgSQL do lado do servidor ... ok
Vacuando banco de dados template1 ... ok
Copiando template1 para template0 ... ok
Copiando template1 para postgres ... ok
Sincronizando dados no disco ... ok

Sucesso. Agora você pode iniciar o servidor de banco de dados usando:

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

Ver Cluster Porta Status Proprietário Diretório de dados Arquivo de log
9.5 main    5433 desligado postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
update-alternatives: usando /usr/share/postgresql/9.5/man/man1/postmaster.1.gz para fornecer /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) no modo automático
invoke-rc.d: não foi possível determinar o nível de execução atual
invoke-rc.d: a política-rc.d negou a execução de start.
Configurando postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Processando gatilhos para postgresql-common (213.pgdg100+1) ...
Construindo dicionários PostgreSQL a partir dos pacotes myspell/hunspell instalados...
Removendo arquivos de dicionário obsoletos:

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 já está rodando, pare o container ; exit 1
2020/05/08 10:12:57 socat[1583] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Arquivo ou diretório não encontrado
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 -- : Arquivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-05-08T10:12:57.408202 #1]  INFO -- : Arquivo > /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 -- : Substituindo data_directory = '/var/lib/postgresql/9.5/main' por data_directory = '/shared/postgres_data' em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.469564 #1]  INFO -- : Substituindo (?-mix:#?listen_addresses *=.*) por listen_addresses = '*' em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.470341 #1]  INFO -- : Substituindo (?-mix:#?synchronous_commit *=.*) por synchronous_commit = $db_synchronous_commit em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471161 #1]  INFO -- : Substituindo (?-mix:#?shared_buffers *=.*) por shared_buffers = $db_shared_buffers em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471959 #1]  INFO -- : Substituindo (?-mix:#?work_mem *=.*) por work_mem = $db_work_mem em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.472759 #1]  INFO -- : Substituindo (?-mix:#?default_text_search_config *=.*) por default_text_search_config = '$db_default_text_search_config' em /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 -- : Substituindo (?-mix:#?max_wal_senders *=.*) por max_wal_senders = $db_max_wal_senders em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.479383 #1]  INFO -- : Substituindo (?-mix:#?wal_level *=.*) por wal_level = $db_wal_level em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.480297 #1]  INFO -- : Substituindo (?-mix:#?checkpoint_segments *=.*) por checkpoint_segments = $db_checkpoint_segments em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481086 #1]  INFO -- : Substituindo (?-mix:#?logging_collector *=.*) por logging_collector = $db_logging_collector em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481922 #1]  INFO -- : Substituindo (?-mix:#?log_min_duration_statement *=.*) por log_min_duration_statement = $db_log_min_duration_statement em /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.482800 #1]  INFO -- : Substituindo (?-mix:^#local +replication +postgres +peer$) por local replication postgres  peer em /etc/postgresql/9.5/main/pg_hba.conf
I, [2020-05-08T10:12:57.483651 #1]  INFO -- : Substituindo (?-mix:^host.*all.*all.*127.*$) por host all all 0.0.0.0/0 md5 em /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:  o sistema de banco de dados foi desligado em 2020-05-08 10:04:26 UTC
2020-05-08 10:12:57.556 UTC [1602] LOG:  proteções de wraparound de MultiXact member estão agora habilitadas
2020-05-08 10:12:57.560 UTC [1599] LOG:  o sistema de banco de dados está pronto para aceitar conexões
2020-05-08 10:12:57.561 UTC [1606] LOG:  lançador do autovacuum iniciado
I, [2020-05-08T10:13:02.496896 #1]  INFO -- :
I, [2020-05-08T10:13:02.497338 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
Erro: A versão 10 do PostgreSQL não está instalada
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
Erro: A versão 10 do PostgreSQL não está instalada
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
Erro: A versão 10 do PostgreSQL não está instalada
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;"'
Erro: A versão 10 do PostgreSQL não está instalada
I, [2020-05-08T10:13:02.784568 #1]  INFO -- :
I, [2020-05-08T10:13:02.785461 #1]  INFO -- : Terminando processos assíncronos
I, [2020-05-08T10:13:02.785916 #1]  INFO -- : Enviando INT para 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:  recebeu solicitação de desligamento rápido
2020-05-08 10:13:02.786 UTC [1599] LOG:  abortando todas as transações ativas
2020-05-08 10:13:02.787 UTC [1606] LOG:  lançador do autovacuum desligando
2020-05-08 10:13:02.793 UTC [1603] LOG:  desligando
2020-05-08 10:13:02.798 UTC [1603] LOG:  o sistema de banco de dados foi desligado


FALHA
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' falhou com retorno #<Process::Status: pid 1617 exit 1>
Local da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falhou com os parâmetros "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
7830e2259ebf66011b6d9f2882ecfc3d204f354ee965ccdc06126682b0fab6d1
** FALHA NA INICIALIZAÇÃO ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.

Como e quando você instalou o Discourse?

Instalação clássica, em uma instância Digital Ocean, usando este método discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(No mínimo há 2 anos, mas fiz várias atualizações; esta instância está na versão 2.5.0b3 e estou tentando atualizar para a beta 4)

Você pode compartilhar as primeiras linhas do seu app.yml?

As que estão em templates.

Você tem razão, a seguinte linha estava no início do app.yml:
"templates/postgres.9.5.template.yml"

Eu a substituí por:
"templates/postgres.template.yml"

A primeira reconstrução após essa alteração atualizou meu banco de dados Postgres.
A segunda reconstrução está em execução, mas parece estar funcionando :slight_smile:

Obrigado a todos!

Então, você mudou isso para 9.5 há mais de dois anos e esqueceu do assunto.

Bem, na hora certa, a atualização para o PostgreSQL 12 está chegando muito em breve. O Meta já está rodando nele.

Parece que está :slight_smile: Obrigado pela sua ajuda, @Falco!