PostgreSQL 18-Update für Self-Hoster

Hast du ein paar weitere Details? Ich habe das gleiche Problem.

1 „Gefällt mir“

Für alle, die das gleiche Problem haben, hier ist die Zusammenfassung (KI) dessen, was ich getan habe:
PG15 temporär starten → Datenbank dumpen → PG18 verwenden → Dump wiederherstellen

1 „Gefällt mir“

Also ja, dieses Upgrade ist bildbasiert.

Selbst wenn du dich entscheidest, eine ältere Version von Discourse zu installieren, zwingt das Image trotzdem ein Upgrade auf Version 18?

Verstanden.

1 „Gefällt mir“

Ich sehe, dass du es behoben hast, aber die Methode, die ChatGPT vorgeschlagen hat, hat zwar den Fehler korrigiert, dabei aber meine Datenbank gelöscht. Es gab also im Grunde keine Accounts, Themen oder Beiträge mehr.

Glücklicherweise handelte es sich um ein relativ neues Dev-Forum, sodass nicht allzu viel verloren ging.

2 „Gefällt mir“

Es wurde viel Sorgfalt darauf verwendet, dass dies heute nicht passiert. Nach jedem Schritt wurde mir gesagt, dass dadurch nichts gelöscht würde, und ich hatte den Eindruck, dass wir dreimal sichergestellt hatten, dass alle Daten migriert waren, bevor wir uns darauf einigen konnten, die Dinge zu löschen, die wir nicht mehr brauchten.

Aber wenn etwas schiefgelaufen wäre, wären die einzigen Daten, die mir fehlen würden, die Konfiguration der Theme-Komponente gewesen.

1 „Gefällt mir“

Hallo, ich habe ein Forum mit einer ziemlich großen Datenbank (ca. 80 GB). Für den Upgrade von Version 13 auf 15 habe ich den Server gewechselt, eine Neuinstallation durchgeführt und das Backup wiederhergestellt.
Empfehlt ihr diesen Weg auch? (Ich habe den direkten Upgrade versucht, aber dabei traten Collation-Fehler auf.)

Früher in diesem Thema haben die Mitarbeiter gesagt:

Ja, es ist also eine Option.

Du hast bereits gesagt:

Kollatierungsfehler? Welche Version ist das bestehende Discourse?

Vielleicht solltest du posten, welche Fehler du erhalten hast / die Konsolenausgabe.

aber du hast nicht den Speicherplatz ausgeschöpft (empfohlen: 2 x bestehende Datenbankgröße)?

Ciao, ich habe Platz (250 GB frei), der Fehler war „Collation Mismatch“, aber ich vermute, dass ich im app.yml-File keine UTF-8-Zeichenketten habe.

1 „Gefällt mir“

Wir versuchen, in den discourse_docker-Images sinnvolle Standardwerte bereitzustellen, aber es ist nicht möglich, jeden denkbaren Anwendungsfall zu berücksichtigen. Du kannst deine Images gerne anpassen, um ältere Versionen beizubehalten, wenn du das bevorzugst.

In gewissem Maße spiegeln die Abhängigkeitsversionen unsere Hosting-Anforderungen wider – wir verwenden das Basisimage intern. Das bedeutet, dass es nicht zu veralten sollte, aber es bedeutet auch, dass wir nur eine begrenzte Anzahl von Konfigurationen warten können.

Das ist eine völlig in Ordnung gehende Methode, wenn du dich damit wohler fühlst.

Wenn die Warnung beim Vorbereiten des Dumps der alten Datenbank generiert wird, ist das kein Grund zur Sorge. Wir starten den Server nur gegen das alte Datenverzeichnis, um pg_dump auszuführen. Wenn der Dump auf dem neuen Server wiederhergestellt wird, werden die Indizes neu erstellt.

Der Grund, warum du dies siehst, ist, dass wir in den letzten Tagen eine neue Version des Basisimages veröffentlicht haben, die von Debian Bookworm auf Trixie aktualisiert und damit die glibc-Version ändert. Auf dem libc-Provider basierende Lokalisierungen (die du wahrscheinlich verwendet hast) sind bei glibc-Updates nicht stabil, sodass das Upgrade-Skript beim Starten eines Postgres-Servers zum Dumpen deiner alten Daten Warnungen wegen Kollatierungsfehlanpassungen anzeigt.

Die Kollatierungsfehlanpassung ist der Hauptgrund, warum wir das Dump-und-Wiederherstellen-Verfahren statt pg_upgrade verwenden. Sobald deine Datenbank C.UTF-8 mit dem builtin-Provider verwendet, werden Upgrades der glibc die Kollatierungen nicht mehr beeinflussen.

2 „Gefällt mir“

Ich habe das Upgrade heute Nacht durchgeführt, und es verlief wie geplant. Ich erhielt die gleichen Warnungen zur Datenbank-Collation, aber es scheint, als sollten wir sie ignorieren. Danke.

2 „Gefällt mir“

Ich habe versucht, in app.yml

app.yml
templates:

  • “templates/postgres.15.template.yml”
  • “templates/redis.template.yml”
  • “templates/web.template.yml”
  • “templates/web.ratelimited.template.yml”

ein Upgrade zu verschieben, aber ich habe diesen Fehler:

Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/15/main/postgresql.conf
Location of failure: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/replace_command.rb:11:in ‘IO.read’
replace failed with the params {“filename” => “/etc/postgresql/15/main/postgresql.conf”, “from” => “data_directory = ‘/var/lib/postgresql/15/main’”, “to” => “data_directory = ‘/shared/postgres_data’”}
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.

Ich glaube, das ist der falsche Basiscontainer. Hast du ./launcher rebuild ausgeführt? Das sollte ein git pull auslösen, aber du könntest versuchen, manuell ein git pull auszuführen, um zu sehen, ob sich daran etwas ändert.

1 „Gefällt mir“