Discourse-Wiederherstellung schlägt mit Fehler „relation already exists

Durch eine Reihe unglücklicher Ereignisse scheint es, als könnte ich mich nicht von meinem neuesten vollständigen Backup wiederherstellen.

Die vollständige Geschichte folgt, aber im Moment lautet mein Problem: Während der Wiederherstellung eines Backups tritt dieser Fehler auf:

Migrating the database…
EXCEPTION: rake db:migrate
Failed to migrate database.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

PG::DuplicateTable: ERROR:  relation "gamification_leaderboard_scores" already exists

Dies scheint ein Problem mit meinen Plugins zu sein, aber ich würde mich über Hilfe bei der Entschlüsselung der Logs freuen, um eine Lösung zu finden, die die Wiederherstellung ermöglicht.

Wie auch immer, so ist es passiert:

Früher heute habe ich ein Discourse-Update durchgeführt, um es auf 2026.5.0-latest b0873d3ecd zu aktualisieren. Dies führte zu einigen Breaking Changes, wodurch mein primäres Theme nicht mehr funktionierte. Ich hätte vor dem Update die Kompatibilität prüfen sollen.

In Panik dachte ich, ich könnte mich von meinem letzten Backup wiederherstellen, um zu einer mit dem Theme kompatiblen Discourse-Version zurückzukehren. Vor der Wiederherstellung habe ich ein vollständiges Backup erstellt, da ich bei Problemen so viele Wiederherstellungspunkte wie möglich haben wollte.

Nun, bei dieser ersten Wiederherstellung ist etwas schiefgelaufen, und Discourse startete wieder, jedoch fehlten die letzten 15 Tage an Inhalten. Bei weiterer Untersuchung fand ich ein Thema auf Meta, das vorschlug, die Backup-Datei von 2026-04-28-033449-v20260420014648.sql.gz in 2026-04-28-033449-v20260407093145.sql.gz umzubenennen. Ich bin mir nicht sicher, warum das funktioniert hat, aber es hat mich zumindest wieder auf das Backup von gestern gebracht.

Ich muss immer noch mein letztes vollständiges Backup von heute Morgen wiederherstellen, das genau derjenige ist, der den oben gezeigten Fehler verursacht.

Das ist bei einigen anderen Plugins bereits passiert. Irgendwie hat eine Migration die Tabelle erstellt, aber das Migrationssystem erkennt nicht, dass sie ausgeführt wurde.

Ich weiß nicht, wie man das gut genug erklärt, um es jemandem verständlich zu machen. Grob gesagt, würden Sie die Wiederherstellung vor der Migration anhalten (dafür gibt es beim Wiederherstellungsbefehl eine Option) und die Tabelle löschen, denke ich. Wenn das Sinn ergibt oder fast Sinn ergibt, könnten Sie es eventuell mit Hilfe von https://ask.discourse.com/ herausfinden.

Wenn das nicht hilft und Sie es eilig haben und ein Budget zur Verfügung steht, können Sie im Marketplace fragen oder mir eine E-Mail schreiben. Wenn es Ihnen nicht eilig ist oder kein Budget haben, besteht die Chance, dass jemand erklären kann, was zu tun ist, und zwar so, dass Sie es verstehen.