Wiederherstellung schlägt fehl mit "hotlinked_media_status" existiert bereits

Fortsetzung der Diskussion von Upgrade schlägt mit Fehler bei doppelten Schlüsseln fehl („index post hotlinked media on post id and url md5“):

Ich versuche nun, von einer Produktionsseite auf eine Staging-Seite wiederherzustellen, und erhalte Folgendes:

ERROR:  type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR:  type "hotlinked_media_status" already exists

@david gibt es einen Fall, den du bei der vorherigen Behebung übersehen hast (ich glaube, es schlug damals bei Migrationen fehl, und dies ist eine Wiederherstellung).

1 „Gefällt mir“

Wie stellen Sie die Website wieder her? Über die Benutzeroberfläche? discourse CLI? direkt psql?

Von der Befehlszeile wird das aktuellste Backup wiederhergestellt (ich habe diesen sed-Trick heute herausgefunden, aber es war dasselbe, wenn ich ihn kopiert/eingefügt habe).

$(discourse restore |sed -n '3p')

Und das Backup wird von S3 aus einer etwas älteren Version wiederhergestellt:

Discourse 3.4.0.beta1-dev - https://github.com/discourse/discourse version a3d61ba1c43931eb688f9b2b85c207b5bab02b8c

zu

Discourse 3.4.0.beta2-dev - https://github.com/discourse/discourse version f405c021ebd36d5f11499159bd2b54098356a8f9"

Können Sie das Problem bei einer anderen Installation reproduzieren?

Es ist ziemlich überraschend, dass dieses Problem mehr als 2 Jahre später auftritt und ohne weitere Berichte :thinking:

Vielleicht nicht? Ich konnte dieses Backup erfolgreich auf meiner Entwicklungsmaschine wiederherstellen.

Haben Sie eine Ahnung, was ich getan haben könnte, um dies zu verursachen, oder was ich tun kann, um es zu beheben? Ich habe die Datenbank gelöscht und konnte sie dann wiederherstellen. Das Löschen der Datenbank war die eigentliche Lösung, aber ich verdiene keine Lösung für ein Problem, das ich (scheinbar) verursacht habe.

Dieses Thema wurde 30 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr gestattet.

Eine sehr wertvolle Erkenntnis, die ich gerade hatte, ist, dass hotlinked_media_status einfach das Erste ist, was in der Wiederherstellungsdatei passiert. Wenn Sie es in der vorhandenen Datenbank manuell entfernen, schlägt die Wiederherstellung bei der nächsten Anweisung (CREATE TABLE public.admin_notices) fehl.

Es geht also nicht um diesen spezifischen Typdefinition. Es ist nur ein Symptom eines größeren Problems, ich vermute, dass BackupRestore.move_tables_between_schemas(MAIN_SCHEMA, BACKUP_SCHEMA) nicht das tut, was es tun soll.

1 „Gefällt mir“