Problemi con l'aggiornamento a postgres 15

Ciao,
Ho avviato un aggiornamento dopo forse un anno, il che ha portato al passaggio da pg 13 a 15.

Sto provando ad eseguire il comando dato con il mio LC_LANG ma non funziona, ottengo FATAL: data directory “/shared/postgres_data” does not exist. E in effetti non esiste… Qualcuno ha un’idea?

Dovrebbe esserci un /shared/postgres_old.

Modificare la propria LC_LANG è probabilmente una cattiva idea.

Ho riscontrato lo stesso errore tuo, “/bin/bash: warning: setlocale: LC_ALL: cannot change locale”, quando ho provato il mio launch rebuild app, il che mi ha portato a questo post. Sei riuscito a risolverlo alla fine? I comandi docker run mi hanno solo causato ulteriori problemi, come indicato sopra.

Ho aggiunto una mappatura \-v /var/discourse/shared/standalone:/shared e ora ho fatto un po’ di strada. È strano che non ci sia comunque. Il problema potrebbe essere che la mia “app” è ancora bloccata a una versione da qualche parte nel 2024 e la “ricostruzione” non funziona. Solo un’ipotesi…

Quindi avevo questo nel mio app.yml e funzionava bene:

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

Intendevo LANG e non LC_LANG. Il problema è che se torno a qualsiasi altra cosa ora è “troppo tardi”. Ho provato en_US.UTF_8 e niente, la ricostruzione fallisce sempre.

Se non hai un backup corrente e non riesci a riavviare il tuo vecchio container, allora passerei al template PG13 e otterrei una configurazione funzionante, poi farei un backup, quindi imposterei un nuovo server e ripristinerei il backup lì. Puoi configurarlo con qualsiasi linguaggio tu voglia quando è un database vuoto e poi eseguire il ripristino (e forse il linguaggio verrà convertito magicamente?).

Il passaggio a un nuovo server assicura che non si blocchi il server esistente.

1 Mi Piace

Purtroppo sono già in uno stato di crash. Ho dei backup ma non posso ripristinarli poiché il cambio di versione è troppo grande e ci sono problemi di dipendenze con le gem. Non posso nemmeno tornare alla vecchia versione poiché il launcher la scarica automaticamente, un po’ triste secondo me.

Con LC_ALL ottengo:

/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

Se rimuovo LC_ALL, allora “./launcher rebuild app” si ferma a:

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 riga docker “manuale” menzionata nel post iniziale, ho anche dovuto collegare le cose in /etc/postgresql a /var/… poiché alcuni file mancavano e alla fine ho ottenuto lo stesso errore di cui sopra.

Proverò una nuova installazione e ripristinerò lì.

Dubito che sia vero che il cambio di versione sia troppo grande. Hai configurato un nuovo server e provato a ripristinare quel backup? Ho ripristinato un backup di diversi anni più vecchio del sito su cui è stato ripristinato. Sono abbastanza sicuro che funzionerà. Sposto siti su nuovi server diverse volte al mese. L’unica volta che ci sono stati problemi è quando c’era un indice corrotto, cosa che non vedo da parecchio tempo.

Hai provato a rinominare postgres_old in postgres_data e

./launcher start app

Oh. Questa è una buona idea! Ecco perché dovrei leggere l’intero post prima di rispondere. :slight_smile:

Confermo che anche una nuova installazione si interrompe con LC_ALL impostato, nello stesso modo mostrato sopra (\FILE_SEPERATOR\ …). Tuttavia, senza LC_ALL funziona correttamente.

Sono riuscito a ripristinare il mio salvataggio con una nuova installazione pulita sull’ultimo master, grazie. Risolvere questi problemi rimarrà un mistero…

1 Mi Piace

Ottimo!

Ho spostato questo in un nuovo argomento. Se una delle mie risposte è stata la soluzione, per favore contrassegnala come tale per consentire la chiusura automatica.

2 Mi Piace