Probleme mit postgres 15 Upgrade

Hallo,
Ich habe nach etwa einem Jahr ein Update durchgeführt, was zu einem Wechsel von pg 13 auf 15 geführt hat.

Ich versuche, den angegebenen Befehl mit meiner eigenen LC_LANG auszuführen, aber es funktioniert nicht. Ich erhalte FATAL: data directory “/shared/postgres_data” does not exist. Und tatsächlich existiert es nicht… Hat jemand eine Idee?

Es sollte ein /shared/postgres_old vorhanden sein.

Die Änderung Ihrer LC_LANG ist wahrscheinlich keine gute Idee.

Ich habe tatsächlich denselben Fehler wie Sie erhalten: „/bin/bash: warning: setlocale: LC_ALL: cannot change locale“, als ich versucht habe, mein launch rebuild app auszuführen, was mich letztendlich zu diesem Beitrag führte. Konnten Sie das Problem am Ende lösen? Die docker run-Befehle führen mich, wie oben angegeben, nur zu weiteren Problemen.

Ich habe eine Zuordnung \-v /var/discourse/shared/standalone:/shared hinzugefügt und bin damit etwas weiter gekommen. Es ist seltsam, dass sie nicht da ist. Das Problem könnte sein, dass meine „App“ immer noch bei einer Version irgendwo im Jahr 2024 feststeckt und der „Neubau“ nicht funktioniert. Nur eine Vermutung…

Ich hatte das in meiner app.yml und es funktionierte einwandfrei:

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

Ich meinte LANG und nicht LC_LANG. Das Problem ist, dass es jetzt „zu spät“ ist, wenn ich auf etwas anderes zurückkehre. Ich habe en_US.UTF_8 versucht und nichts, der Neubau schlägt immer fehl.

Wenn Sie kein aktuelles Backup haben und Ihren alten Container nicht neu starten können, würde ich auf die PG13-Vorlage umsteigen und eine funktionierende Einrichtung vornehmen, dann ein Backup erstellen und anschließend einen neuen Server einrichten und das Backup dort wiederherstellen. Sie können es mit jeder beliebigen Sprache einrichten, wenn es eine leere Datenbank ist, und dann die Wiederherstellung durchführen (und vielleicht wird die Sprache auf magische Weise konvertiert?).

Der Umzug auf einen neuen Server stellt sicher, dass Ihr bestehender Server nicht abstürzt.

1 „Gefällt mir“

Leider befinde ich mich bereits in einem abgestürzten Zustand. Ich habe zwar Backups, kann sie aber nicht wiederherstellen, da der Versionssprung zu groß ist und es Probleme mit Abhängigkeiten bei Gems gibt. Ich kann auch nicht zur alten Version zurückkehren, da der Launcher automatisch zieht, was meiner Meinung nach etwas traurig ist.

Mit LC_ALL erhalte ich:

/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

Wenn ich LC_ALL entferne, stoppt ./launcher rebuild app bei:

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”

Mit der „manuellen“ Docker-Zeile, die im obersten Beitrag erwähnt wurde, musste ich auch Dinge in /etc/postgresql nach /var/… verlinken, da einige Dateien fehlten, und erhielt schließlich denselben Fehler wie oben.

Ich werde eine Neuinstallation versuchen und dort wiederherstellen.

Ich bezweifle, dass es stimmt, dass die Versionsänderung zu groß ist. Haben Sie einen neuen Server eingerichtet und versucht, dieses Backup wiederherzustellen? Ich habe ein Backup wiederhergestellt, das mehrere Jahre älter ist als die Seite, auf der es wiederhergestellt wurde. Ich bin mir ziemlich sicher, dass es funktionieren wird. Ich verschiebe mehrmals im Monat Seiten auf neue Server. Das einzige Mal, dass es ein Problem gab, war, als ein beschädigter Index vorlag, was ich schon seit einiger Zeit nicht mehr gesehen habe.

Haben Sie versucht, postgres_old in postgres_data umzubenennen und

./launcher start app

Oh. Das ist eine gute Idee! Deshalb sollte ich den ganzen Beitrag lesen, bevor ich antworte. :slight_smile:

Ich kann bestätigen, dass eine neue Installation ebenfalls fehlschlägt, wenn LC_ALL gesetzt ist, auf die gleiche Weise wie oben gezeigt (\FILE_SEPERATOR\ …). Ohne LC_ALL funktioniert es jedoch einwandfrei.

Ich konnte mein Backup mit einer neuen, frischen Installation auf dem neuesten Master wiederherstellen, danke. Die Behebung dieser Probleme wird ein Rätsel bleiben…

1 „Gefällt mir“

Großartig!

Ich habe dies in ein neues Thema verschoben. Wenn eine meiner Antworten die Lösung war, markieren Sie diese bitte entsprechend, damit dieses Thema automatisch geschlossen werden kann.

2 „Gefällt mir“