Wir verwenden Discourse mit einer externen Datenbank anstelle der integrierten, Docker-basierten Postgres. Wir mussten kürzlich unseren Postgres-Cluster auf Version 14 upgraden, weshalb das Discourse-Backup weiterhin fehlschlägt.
Log-Ausgabe
[2022-01-17 03:38:08] Dumping the public schema of the database...
[2022-01-17 03:38:08] pg_dump: error: server version: 14.1 (Ubuntu 14.1-1.pgdg18.04+1); pg_dump version: 13.5 (Debian 13.5-1.pgdg100+1)
[2022-01-17 03:38:08] pg_dump: error: aborting because of server version mismatch
[2022-01-17 03:38:08] EXCEPTION: pg_dump failed
Gibt es eine Möglichkeit, den postgresql-client 13.5-1.pgdg100+1 des Containers auf Version 14 zu upgraden?
Wir aktualisieren Postgres-Versionen alle zwei Releases, da die Aktualisierung der Datenbank enorme technische Ressourcen erfordert. Wir verwenden derzeit Postgres 13, daher werden wir auf Postgres 15.1 upgraden, sobald diese veröffentlicht wird (die Bugfix-Point-Release).
Ich verstehe das, aber danke, dass Sie auf die Upgrade-Richtlinie hingewiesen haben – wirklich gut zu wissen. Uns sind die technischen Ressourcen bezüglich der Datenbank bewusst. Ich liebe Postgres, aber das Upgrade unseres Clusters lässt uns normalerweise zu frommen Katholiken werden – viele Gebete im Voraus, aber immer noch viel Blut, Schweiß und Tränen.
Sie sollten in der Lage sein, den erforderlichen postgresql-client manuell zu installieren, indem Sie die entsprechenden apt-get-Befehle zu Ihrer app.yml hinzufügen.
Würde dies zu Abhängigkeitsproblemen mit Ruby-Gems der Anwendung selbst führen? Soweit ich weiß, erfordert das Hinzufügen von apt install als Hook einen launcher rebuild app, richtig? Wenn ja, würde ich dies für ein weiteres gefürchtetes Upgrade überspringen, da wir, wie hier in einem anderen meiner Themen beschrieben, massive Probleme beim Wiederaufbau der App in China haben. Aus diesem Grund möchte ich klären, ob es ausreicht, die App einfach zu betreten und sie dann manuell über apt zu installieren.
Ich schlage vor, Sie testen es zuerst auf einer Staging-Website, bevor Sie etwas in der Produktion tun, aber ich denke, es wird keine Probleme mit Ruby-Gems geben. Die Installation im laufenden Container sollte ebenfalls funktionieren.
??? es erfordert eine enorme Menge an Engineering-Ressourcen ???
Es scheint, dass diese einfachen Befehlszeilen zur Aktualisierung der PostgreSQL-Datenbank von 13.5 auf 14.1 das Backup-Problem lösen… Prost
cd /var/discourse
./launcher enter app
sudo apt-get install postgresql