Das Upgrade von 2.9.0.beta2 auf 2.9.0.beta4 schlug mit der Fehlermeldung PG::DuplicateColumn: ERROR: column "bookmarkable_id" of relation "bookmarks" already exists fehl. Der Rat unter Recovering from failed/partially applied upgrade half mir, wieder online zu gehen. Ich eröffne ein neues Thema, da dieses Problem speziell eine (dockerisierte) Multisite-Installation zu betreffen scheint.
Das Problem scheint darin zu bestehen, dass multisite:migrate versucht, dieselbe Migration erneut auszuführen, die bereits als Teil der früheren Migrationen ausgeführt wurde. Das Ergebnis war PG::DuplicateColumn: ERROR: column "bookmarkable_id" of relation "bookmarks" already exists. Basierend auf der Fehlermeldung könnte dies mit der polymorphen Lesezeichenfunktion zusammenhängen, DEV: Re-add polymorphic bookmark columns by martin-brennan · Pull Request #16261 · discourse/discourse · GitHub (Ping @martin?).
Nachdem ich auf das Problem gestoßen war, war meine schnelle und schmutzige Lösung:
Auskommentieren der Zeile - exec: cd /var/www/discourse \u0026\u0026 sudo -E -u discourse bundle exec rake multisite:migrate in der Konfigurationsdatei containers/web_only.yml.
Manuelles Löschen der (teilweise angewendeten?) Migrationen im Zusammenhang mit Lesezeichen: ./launcher enter data und Verwendung von psql, um mich in beide meiner Discourse-Datenbanken einzuloggen und ALTER TABLE bookmarks DROP COLUMN bookmarkable_id, DROP COLUMN bookmarkable_type; auszuführen.
Erneutes Ausführen des Rebuilds: ./launcher rebuild web_only 2\u003e\u00261
Was könnte ich jetzt übersehen, da multisite:migrate nicht ausgeführt wurde? Ich würde mich über Gedanken freuen. Beide Seiten scheinen jedoch zu funktionieren.
Haben Sie irgendwelche Gedanken dazu, warum Sie das tun würden? Oder Hinweise darauf, was Sie von der Ausführung der Multisite-Migration erwarten können? Sehen Sie, ich habe eine Abneigung dagegen, Skripte auszuführen, die ich nicht verstehe.
Weil du zumindest ungefähr weißt, wie du es reparieren kannst, und du es komplett vergessen haben wirst, wenn du das nächste Mal ein Upgrade durchführst (wenn du auch nur annähernd wie ich bist). Ich bin ziemlich sicher, dass es funktionieren wird, da ich glaube, dass dies das ist, was andere gesehen haben, als sie dieses Problem behoben haben.