Al reconstruir, Discourse elimina PostGreSQL 10 y reinstala la versión 9.5

Cuando intento usar el comando ./launcher rebuild app, parece que el script elimina PostgreSQL v10 ya instalado e intenta reinstalar la versión 9.5, bloqueando la ejecución del script en las consultas.

./launcher rebuild app
Asegurando que el launcher esté actualizado
Obteniendo origin
El launcher está actualizado
Deteniendo el contenedor anterior
+ /usr/bin/docker stop -t 10 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Ya está actualizado.
I, [2020-05-08T10:12:43.767891 #1]  INFO -- : Cargando --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 -- : Leyendo listas de paquetes...
Construyendo árbol de dependencias...
Leyendo información de estado...
Los siguientes paquetes serán ELIMINADOS:
  postgresql-10 postgresql-client-10
0 actualizados, 0 instalados nuevos, 2 a eliminar y 0 no actualizados.
Tras esta operación, se liberarán 30.6 MB de espacio en disco.
(Leyendo la base de datos ... 42938 archivos y directorios instalados actualmente.)
Eliminando postgresql-10 (10.12-2.pgdg100+1) ...
invoke-rc.d: no se pudo determinar el nivel de ejecución actual
invoke-rc.d: policy-rc.d denegó la ejecución de stop.
Eliminando postgresql-client-10 (10.12-2.pgdg100+1) ...
Procesando disparadores para postgresql-common (213.pgdg100+1) ...
Construyendo diccionarios de PostgreSQL desde los paquetes myspell/hunspell instalados...
Eliminando archivos de diccionario 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: retrasando la configuración del paquete, ya que apt-utils no está instalado
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]
Descargados 564 kB en 1s (543 kB/s)
Leyendo listas de paquetes...
Leyendo listas de paquetes...
Construyendo árbol de dependencias...
Leyendo información de estado...
Paquetes sugeridos:
  postgresql-doc-9.5 libdbd-pg-perl
Los siguientes paquetes NUEVOS serán instalados:
  postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 actualizados, 3 instalados nuevos, 0 a eliminar y 0 no actualizados.
Se necesitan descargar 5.700 kB de archivos.
Tras esta operación, se utilizarán 27.2 MB adicionales de espacio en disco.
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]
Descargados 5.700 kB en 0s (30.5 MB/s)
Seleccionando el paquete previamente no seleccionado postgresql-client-9.5.
(Leyendo la base de datos ... 42096 archivos y directorios instalados actualmente.)
Preparando para desempaquetar .../postgresql-client-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Desempaquetando postgresql-client-9.5 (9.5.21-2.pgdg100+1) ...
Seleccionando el paquete previamente no seleccionado postgresql-9.5.
Preparando para desempaquetar .../postgresql-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Desempaquetando postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Seleccionando el paquete previamente no seleccionado postgresql-contrib-9.5.
Preparando para desempaquetar .../postgresql-contrib-9.5_9.5.21-2.pgdg100+1_amd64.deb ...
Desempaquetando 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 proporcionar /usr/share/man/man1/psql.1.gz (psql.1.gz) en modo automático
Configurando postgresql-9.5 (9.5.21-2.pgdg100+1) ...
Creando nuevo clúster de PostgreSQL 9.5/main ...
/usr/lib/postgresql/9.5/bin/initdb -D /var/lib/postgresql/9.5/main --auth-local peer --auth-host md5
Los archivos que pertenecen a este sistema de base de datos serán propiedad del usuario «postgres».
Este usuario también debe ser propietario del proceso del servidor.

El clúster de base de datos se inicializará con la localización «C.UTF-8».
La codificación predeterminada de la base de datos se ha establecido en consecuencia a «UTF8».
La configuración predeterminada de búsqueda de texto se establecerá en «inglés».

Los checksums de las páginas de datos están desactivados.

Corrigiendo permisos en el directorio existente /var/lib/postgresql/9.5/main ... ok
creando subdirectorios ... ok
seleccionando max_connections predeterminado ... 100
seleccionando shared_buffers predeterminado ... 128MB
seleccionando zona horaria predeterminada ... Etc/UTC
seleccionando implementación de memoria compartida dinámica ... posix
creando archivos de configuración ... ok
creando base de datos template1 en /var/lib/postgresql/9.5/main/base/1 ... ok
inicializando pg_authid ... ok
inicializando dependencias ... ok
creando vistas del sistema ... ok
cargando descripciones de objetos del sistema ... ok
creando colaciones ... ok
creando conversiones ... ok
creando diccionarios ... ok
estableciendo privilegios en objetos integrados ... ok
creando esquema de información ... ok
cargando lenguaje del lado del servidor PL/pgSQL ... ok
vacuando base de datos template1 ... ok
copiando template1 a template0 ... ok
copiando template1 a postgres ... ok
sincronizando datos en disco ... ok

Éxito. Ahora puede iniciar el servidor de base de datos usando:

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

Ver Clúster Puerto Estado Propietario Directorio de datos Archivo de registro
9.5 main    5433 apagado   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 proporcionar /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) en modo automático
invoke-rc.d: no se pudo determinar el nivel de ejecución actual
invoke-rc.d: policy-rc.d denegó la ejecución de start.
Configurando postgresql-contrib-9.5 (9.5.21-2.pgdg100+1) ...
Procesando disparadores para postgresql-common (213.pgdg100+1) ...
Construyendo diccionarios de PostgreSQL desde los paquetes myspell/hunspell instalados...
Eliminando archivos de diccionario 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 ya está en ejecución, detener contenedor ; exit 1
2020/05/08 10:12:57 socat[1583] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No existe el archivo o el directorio
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 -- : Archivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-05-08T10:12:57.408202 #1]  INFO -- : Archivo > /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 -- : Reemplazando data_directory = '/var/lib/postgresql/9.5/main' por data_directory = '/shared/postgres_data' en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.469564 #1]  INFO -- : Reemplazando (?-mix:#?listen_addresses *=.*) por listen_addresses = '*' en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.470341 #1]  INFO -- : Reemplazando (?-mix:#?synchronous_commit *=.*) por synchronous_commit = $db_synchronous_commit en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471161 #1]  INFO -- : Reemplazando (?-mix:#?shared_buffers *=.*) por shared_buffers = $db_shared_buffers en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.471959 #1]  INFO -- : Reemplazando (?-mix:#?work_mem *=.*) por work_mem = $db_work_mem en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.472759 #1]  INFO -- : Reemplazando (?-mix:#?default_text_search_config *=.*) por default_text_search_config = '$db_default_text_search_config' en /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 -- : Reemplazando (?-mix:#?max_wal_senders *=.*) por max_wal_senders = $db_max_wal_senders en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.479383 #1]  INFO -- : Reemplazando (?-mix:#?wal_level *=.*) por wal_level = $db_wal_level en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.480297 #1]  INFO -- : Reemplazando (?-mix:#?checkpoint_segments *=.*) por checkpoint_segments = $db_checkpoint_segments en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481086 #1]  INFO -- : Reemplazando (?-mix:#?logging_collector *=.*) por logging_collector = $db_logging_collector en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.481922 #1]  INFO -- : Reemplazando (?-mix:#?log_min_duration_statement *=.*) por log_min_duration_statement = $db_log_min_duration_statement en /etc/postgresql/9.5/main/postgresql.conf
I, [2020-05-08T10:12:57.482800 #1]  INFO -- : Reemplazando (?-mix:^#local +replication +postgres +peer$) por local replication postgres  peer en /etc/postgresql/9.5/main/pg_hba.conf
I, [2020-05-08T10:12:57.483651 #1]  INFO -- : Reemplazando (?-mix:^host.*all.*all.*127.*$) por host all all 0.0.0.0/0 md5 en /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:  el sistema de base de datos se apagó el 2020-05-08 10:04:26 UTC
2020-05-08 10:12:57.556 UTC [1602] LOG:  las protecciones de desbordamiento de miembros de MultiXact están ahora habilitadas
2020-05-08 10:12:57.560 UTC [1599] LOG:  el sistema de base de datos está listo para aceptar conexiones
2020-05-08 10:12:57.561 UTC [1606] LOG:  lanzador de 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
Error: La versión 10 de PostgreSQL no 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
Error: La versión 10 de PostgreSQL no 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
Error: La versión 10 de PostgreSQL no 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;"'
Error: La versión 10 de PostgreSQL no está instalada
I, [2020-05-08T10:13:02.784568 #1]  INFO -- :
I, [2020-05-08T10:13:02.785461 #1]  INFO -- : Terminando procesos asíncronos
I, [2020-05-08T10:13:02.785916 #1]  INFO -- : Enviando 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:  recibido pedido de apagado rápido
2020-05-08 10:13:02.786 UTC [1599] LOG:  abortando cualquier transacción activa
2020-05-08 10:13:02.787 UTC [1606] LOG:  lanzador de autovacuum apagándose
2020-05-08 10:13:02.793 UTC [1603] LOG:  apagándose
2020-05-08 10:13:02.798 UTC [1603] LOG:  el sistema de base de datos se ha apagado


FALLÓ
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' falló con retorno #<Process::Status: pid 1617 exit 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
7830e2259ebf66011b6d9f2882ecfc3d204f354ee965ccdc06126682b0fab6d1
** NO SE LOGRÓ INICIALIZAR ** por favor, desplácese hacia arriba y busque mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

¿Cómo y cuándo instalaste Discourse?

Instalación clásica en un droplet de Digital Ocean, utilizando este método discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

(Hace al menos 2 años, pero he realizado muchas actualizaciones; esta instancia está en la versión 2.5.0b3 y estoy intentando actualizar a la beta 4)

¿Podrías compartir las primeras líneas de tu app.yml?

Las que están bajo templates.

Tienes razón, la siguiente línea estaba al principio de app.yml:
"templates/postgres.9.5.template.yml"
La he sustituido por:
"templates/postgres.template.yml"
La primera reconstrucción tras este cambio actualizó mi base de datos de Postgres.
La segunda reconstrucción se está ejecutando actualmente, pero parece que funciona :slight_smile:

¡Gracias a todos!

Así que cambiaste eso a 9.5 hace más de dos años y lo olvidaste.

Bueno, justo a tiempo, la actualización a PostgreSQL 12 está muy próxima. Meta ya lo está ejecutando.

Parece ser :slight_smile: ¡Gracias por tu ayuda, @Falco!