it-swarm.com.de

Was bedeutet dieser Fehler beim Ausführen eines pg_restore in einer Postgres 9.6.2-Datenbank?

Ich habe also eine Rails 5.0.x-Anwendung, die auf Heroku mit Postgres 9.6.1 ausgeführt wird. Ich ziehe nach unten und mache ein pg_restore --exit-on-error --verbose --clean --no-acl --no-owner -h localhost -d database_development ~/Documents/Backups/myproduction.dump

Ich erhalte folgende Fehlermeldung:

pg_restore: connecting to database for restore
pg_restore: dropping FK CONSTRAINT trial_versions fk_Rails_f888baa05c
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3091; 2606 16768 FK CONSTRAINT trial_versions fk_Rails_f888baa05c u7dok58iar41mh
pg_restore: [archiver (db)] could not execute query: ERROR:  constraint "fk_Rails_f888baa05c" of relation "trial_versions" does not exist
    Command was: ALTER TABLE ONLY "public"."trial_versions" DROP CONSTRAINT "fk_Rails_f888baa05c";

Was sagt mir dieser Fehler? Ich hatte dieses Problem noch nie zuvor. Dies hat erst vor kurzem begonnen und ich muss zuerst den Fehler verstehen, bevor ich überhaupt mit der Fehlerbehebung beginnen kann.

5
Nona

Für die Datenbank, aus der die Dump-Datei stammt, ist eine bestimmte Fremdschlüsseleinschränkung definiert. Ihre Zieldatenbank jedoch nicht. Wahrscheinlich, weil jemand es seit dem letzten Dump zur Dump-Datenbank hinzugefügt hat. Da Sie --clean Angegeben haben, wird versucht, alle in der Speicherauszugsdatei vorhandenen Objekte aus Ihrer Zieldatenbank zu löschen, bevor Sie sie neu erstellen. Es schlägt fehl, da es in Ihrer Zieldatenbank nicht vorhanden ist, um gelöscht zu werden.

Sie können dem Wiederherstellungsbefehl --if-exists Hinzufügen. Oder Sie können --exit-on-error Aus dem Befehl entfernen und die erhaltene Fehlermeldung einfach ignorieren.

6
jjanes