Problemas con la actualización a postgres 15

Hola,
Probablemente lancé una actualización después de un año, lo que llevó a la transición de pg 13 a 15.

Estoy tratando de ejecutar el comando dado con mi propio LC_LANG pero no funciona, obtengo FATAL: data directory “/shared/postgres_data” does not exist. Y, de hecho, no existe… ¿Alguien tiene alguna idea?

Debería haber un /shared/postgres_old.

Cambiar su LC_LANG es probablemente una mala idea.

De hecho, obtuve el mismo error que tú: “/bin/bash: warning: setlocale: LC_ALL: cannot change locale” cuando intenté mi launch rebuild app, lo que finalmente me llevó a esta publicación. ¿Pudiste resolverlo al final? Los comandos docker run solo me llevaron a más problemas, como se indicó anteriormente.

Agregué un mapeo \-v /var/discourse/shared/standalone:/shared y ahora he avanzado un poco. Es extraño que no esté ahí, sin embargo. El problema podría ser que mi “aplicación” todavía está atascada en alguna versión de 2024 y el “rebuild” (reconstrucción) no funciona. Solo una suposición…

Así que tenía esto en mi app.yml y funcionaba bien:

env:
  LC_ALL: fr_BE.UTF-8
  LANG: fr_BE.UTF-8
  LANGUAGE: fr_BE.UTF-8

Quise decir LANG y no LC_LANG. El problema es que si vuelvo a cualquier otra cosa ahora es “demasiado tarde”. Intenté con en_US.UTF_8 y nada, el rebuild siempre falla.

Si no tienes una copia de seguridad actual y no puedes reiniciar tu contenedor antiguo, entonces cambiaría a la plantilla PG13 y obtendría una configuración funcional, luego haría una copia de seguridad, y luego configuraría un nuevo servidor y restauraría la copia de seguridad allí. Puedes configurarlo con el lenguaje que desees cuando sea una base de datos vacía y luego hacer la restauración (¿y tal vez el lenguaje se convierta mágicamente?).

Moverse a un nuevo servidor asegura que no bloquearás tu servidor existente.

1 me gusta

Lamentablemente, ya estoy en un estado fallido. Tengo copias de seguridad, pero no puedo restaurarlas ya que el cambio de versión es demasiado grande y hay problemas de dependencias con gem. Tampoco puedo volver a la versión anterior porque el lanzador (launcher) se actualiza automáticamente, lo cual es un poco triste en mi opinión.

Con LC_ALL obtengo:

/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_BE.UTF-8)
I, [2025-12-02T15:46:29.638999 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `split': invalid byte sequence in US-ASCII (ArgumentError)

    split = conf.split("_FILE_SEPERATOR_")
                       ^^^^^^^^^^^^^^^^^^
    from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `run'
    from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/bin/pups:9:in `<top (required)>'
    from /usr/local/bin/pups:25:in `load'
    from /usr/local/bin/pups:25:in `<main>'

bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
19a63b958021df0ecbc7e21bfea95f1c5ef7b039efd669b5d4af48b05d397a58

Si elimino LC_ALL, entonces ./launcher rebuild app se detiene en:

Performing Consistency Checks

Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for system-defined composite types in user tables  ok
Checking for reg* data types in user tables                 ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for user-defined encoding conversions              ok
Checking for user-defined postfix operators                 ok
Checking for incompatible polymorphic functions             ok
Checking for not-null constraint inconsistencies            ok
Creating dump of global objects                             ok
Creating dump of database schemas                           ok

lc_collate values for database “template1” do not match:  old “fr_BE.UTF-8”, new “en_US.UTF-8”

Con la línea docker “manual” mencionada en la publicación superior, también tuve que vincular cosas en /etc/postgresql a /var/... ya que faltaban algunos archivos y finalmente obtuve el mismo error que el anterior.

Intentaré una nueva instalación y restauraré allí.

Dudo que sea cierto que el cambio de versión sea demasiado grande. ¿Has configurado un nuevo servidor e intentado restaurar esa copia de seguridad? He restaurado una copia de seguridad varios años más antigua que el sitio donde se restauró. Estoy bastante seguro de que funcionará. Muevo sitios a nuevos servidores varias veces al mes. La única vez que ha habido un problema fue cuando había un índice corrupto, algo que no he visto en bastante tiempo.

¿Has intentado renombrar postgres_old a postgres_data y ejecutar

./launcher start app

¡Oh! ¡Esa es una buena idea! Por eso debería leer la publicación completa antes de responder. :slight_smile:

Confirmo que una nueva instalación también falla con LC_ALL configurado, de la misma manera que se muestra arriba (\FILE_SEPERATOR\ …). Sin embargo, sin LC_ALL funciona bien.

Pude restaurar mi guardado con una nueva instalación limpia en el último master, gracias. Arreglar estos problemas seguirá siendo un misterio…

1 me gusta

¡Genial!

He movido esto a un nuevo tema. Si una de mis respuestas fue la solución, por favor márcala como tal para permitir que se cierre automáticamente.

2 Me gusta