Discourse bei postgres 12 bricht Upgrades

Wir nutzen PostgreSQL v12, da das Upgrade auf v13 zu viel Speicherplatz erfordert. Es scheint, als ob die Kompatibilität mit v12 möglicherweise beschädigt wurde? Ist das beabsichtigt? Wenn ja, bedeutet das, dass wir Discourse nie wieder upgraden können.

Das Ausführen von ./launcher start app hat uns wieder online gebracht, sodass es sich derzeit nicht um ein Produktionsproblem handelt. Aber nicht einmal aus Sicherheitsgründen upgraden zu können, wäre für uns eine sehr schlechte Nachricht.

Aus app.yml:

  - "templates/postgres.12.template.yml"

Ausführen von ./launcher rebuild app:

FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/13/main/pg_hba.conf
Location of failure: /pups/lib/pups/replace_command.rb:8:in `read'
replace failed with the params {"filename"=>"/etc/postgresql/13/main/pg_hba.conf", "from"=>"/^host.*all.*all.*::1\\/128.*$/", "to"=>"host all all ::/0 md5"}
0ba8112e6efa1ac2dd75af8a1da8eea0937e7aefbca2df28b22d27e9608d1479
** FAILED TO BOOTSTRAP ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als eine geben.
./discourse-doctor kann helfen, das Problem zu diagnostizieren.

Derzeit wird Version 2.8.0.beta4 75b0d6df93 ausgeführt.

Es wird PostgreSQL 13 und nicht 12 gesucht.

{“filename” => “/etc/postgresql/13/main/pg_hba.conf”,

Tatsächlich. Das ist das Problem.

Warum machen Sie kein Backup, erstellen eine komplett neue Discourse-Instanz (die standardmäßig PostgreSQL 13 verwenden sollte), stellen das Backup wieder her und ordnen den Server im DNS neu zu?

Das würde funktionieren, ja. Ich versuche verzweifelt, das nicht tun zu müssen.

Mag vielleicht beängstigend wirken, aber Sie hätten dort genügend Sicherheitsvorkehrungen. Sie können den alten Server jederzeit wieder online bringen.

Das ist weniger beängstigend als lästige Arbeit, die ich vermeiden möchte, kombiniert mit der Mitteilung an mein Forum, dass sie ein oder zwei Tage an Beiträgen verlieren werden. Ich würde gerne, dass die Discourse-Mitglieder sagen: ‘Natürlich arbeiten wir weiter an PG12, das ist nur ein Fehler, wir werden das beheben’, idealerweise.

Ich verstehe nicht, warum das notwendig ist.

  1. Neuen Server auf einer Subdomain vorbereiten?

  2. Vorhandenen Server in den Nur-Lese-Modus versetzen und Sicherung erstellen

  3. Sicherung auf den neuen Server übertragen

  4. DNS neu zuordnen

  5. Neuen Server mit der primären Discourse-Subdomain wiederherstellen.

Dieser Vorgang könnte 30 Minuten dauern?

Nein, ich leite ein sehr großes Forum.

Ah! Ein schönes Problem, das man haben kann! :slight_smile:

Ich nehme an, ich werde dafür nicht bezahlt! :wink:

Ah, ich verstehe, es ist ein Fehler, der durch einen Community-PR eingeführt wurde. Da wir PG12 nirgendwo einsetzen, ist er unbemerkt geblieben. Geben Sie mir ein paar Minuten.

In Fix #551 regression on old pg by xfalcox · Pull Request #566 · discourse/discourse_docker · GitHub behoben.

Könntest du bitte erneut einen Neuaufbau versuchen, @Wingtip?

Das heißt, wir führen PG12 nicht mehr aus, sodass wir jederzeit SQL-Syntax einführen könnten, die ausschließlich für PG13+ gilt. Daher wäre es eine gute Idee, das Upgrade irgendwann zu planen.

Ich werde es mir direkt nach einem weiteren Snapshot meiner VM ansehen.

Es ist wirklich nervig, dass PG für ein Upgrade eine Menge Festplattenspeicher benötigt. Bei Oracle oder MySQL habe ich dieses Problem nicht; dort wird einfach direkt vor Ort aktualisiert.

pg_upgrade bietet eine einzelne Option --link, um Upgrades am selben Ort zu ermöglichen.

Wir haben uns dafür entschieden, diese in unserem „einsteigerfreundlichen

Es wurden zwei Lösungen angeboten; soweit ich mich erinnere, benötigte die eine etwa die dreifache Größe der gesamten Datenbank und die andere das Doppelte. Wenn dies in-place durchgeführt werden kann, wäre eine Dokumentation davon sehr hilfreich.

Edit: Die Korrektur hat funktioniert, vielen Dank!

Ja, ich habe es kopiert und eingefügt, ohne nachzudenken – sorry und danke, dass du es repariert hast!