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).
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"
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.
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.