Alt Postgres auf Docker-Image mit zwei Containern: Web und Daten

Hallo zusammen,

ich stecke fest beim Upgrade einer Docker-Discourse-Instanz. Beim Versuch, den Container neu aufzubauen, zu bootstrappen oder auf irgendeine andere Weise einzurichten, erhalte ich folgenden Fehler:

I, [2020-11-18T15:23:37.357104 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2020-11-18T15:23:40.298932 #1]  INFO -- : discourse-slack-official ist bereits auf der neuesten kompatiblen Version
docker_manager ist bereits auf der neuesten kompatiblen Version

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: Ein Fehler ist aufgetreten, alle späteren Migrationen wurden abgebrochen:

PG::SyntaxError: ERROR:  syntax error at or near "NOT"
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

Nach meiner Recherche scheint es, dass PostgreSQL 12 für die neueste Discourse-Version erforderlich ist, dies ist jedoch derzeit nicht im offiziellen Docker-Image enthalten.

Es gibt zwar einen Entwicklungszweig im Repository für das Erstellen des Containers mit PostgreSQL 12, aber keine ausstehenden Pull Requests oder Ähnliches…

Wie kann ich meine Discourse-Installation reparieren/aktualisieren? Der Update-Pfad ist falsch, und jetzt kämpfe ich darum, das Forum so schnell wie möglich wieder online zu bringen!

2 „Gefällt mir“

Zusätzlicher Hinweis: Der Branch pg12 funktioniert ebenfalls nicht (obwohl er zwar versucht, eine andere Container-Version herunterzuladen), aber der gleiche Fehler bei db:migrate tritt weiterhin auf…

Das ist nicht der Fall. Das Basis-Image für Discourse wird seit vielen Monaten mit PostgreSQL ausgeliefert, seit dem PostgreSQL-12-Update.

Könntest du deine app.yml teilen? Vielleicht hast du versehentlich ein altes Basis-Image darin erzwungen?

2 „Gefällt mir“

Wie alt ist dein discourse_docker-Checkout? Ich weiß, dass das launcher-Skript sich automatisch aktualisieren soll, aber es könnte sich lohnen, zur Sicherheit manuell git pull auszuführen.

Das neueste Basis-Image sollte sein:

image="discourse/base:2.0.20201004-2310"

Was erhältst du, wenn du folgenden Befehl ausführst:

docker images | grep discourse/base

Außerdem wurde dieses Plugin vor 3 Jahren als veraltet markiert :scream:

2 „Gefällt mir“

Seltsam, ich bin auf dem neuesten Commit:

$ git branch -v
* master 4a4b0f8 DOCS: Syntaxfehler in der README korrigiert

Und ich scheine das neueste Image zu haben:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 weeks ago         2.4GB
local_discourse/data   latest              253fd4d68068        3 years ago         1.7GB

Ich habe darauf geachtet, alte Docker-Images zu löschen und habe versucht, die web-App mehrfach neu zu bauen.

Ah, muss ich zuerst den data-Container neu bauen oder so etwas? Ich habe ihn noch nicht angetastet.

Auch dieses Plugin wurde vor 3 Jahren veraltet :scream:

:see_no_evil: Das steht als Nächstes auf meiner Liste, um es auf den neuesten Stand zu bringen, aber ich bin mit dem aktuellen Update festgefahren!

Ah, du nutzt das erweiterte Daten-Setup?

Du musst den Webdienst stoppen und die Daten neu aufbauen, um alle Daten-Software-Updates zu erhalten. Dafür gibt es einen Abschnitt unter PostgreSQL 12 update

8 „Gefällt mir“

Danke für deine Hilfe, der data-Container wird jetzt neu erstellt…

Okay, das scheint funktioniert zu haben, nochmal vielen Dank an alle!

Das ist die Art von Ärger, die man erwarten muss, wenn man eine Discourse-Installation übernimmt und zum ersten Mal ein Upgrade durchführt :sweat_smile:

4 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.