Das Problem wurde bereits here und here angegangen, aber ohne Ergebnis für mich zu arbeiten.Heroku Wiederherstellung von der lokalen Datenbank mit PG: Sicherungen mit "FEHLER: muss Eigentümer der Erweiterung plpgsql sein"
Ich sichern, wie in der Heroku-Dokumentation erforderlich.
pg_dump -Fc --no-acl --no-owner --no-privileges -h [HOST] -U [DB_USER] [DB_NAME] > backup.dump
Wenn ich wieder herstellen wie so (die Größe der Datei ist ~ 100 MB):
heroku pg:backups --app [APP_NAME] restore 'https://[DUMP_URL]' [HEROKU_DATABASE_URL]
ich eine Fehlermeldung nach dem Fortschritt der Upload erhalten stoppt bei 19,4 MB und Protokolle Zustand:
$ heroku pg:backups --app [APP_NAME] info r081
=== Backup info: r081
Database: BACKUP
Started: 2016-04-29 10:10:37 +0000
Finished: 2016-04-29 10:11:31 +0000
Status: Failed
Type: Manual
Backup Size: 19.4MB
=== Backup Logs
2016-04-29 10:10:39 +0000: pg_restore: connecting to database for restore
2016-04-29 10:10:41 +0000: pg_restore: creating SCHEMA public
2016-04-29 10:10:41 +0000: pg_restore: creating EXTENSION plpgsql
2016-04-29 10:10:41 +0000: pg_restore: creating COMMENT EXTENSION plpgsql
2016-04-29 10:10:41 +0000: pg_restore: [archiver (db)] Error while PROCESSING TOC:
2016-04-29 10:10:41 +0000: pg_restore: [archiver (db)] Error from TOC entry 2474; 0 0 COMMENT EXTENSION plpgsql
2016-04-29 10:10:41 +0000: pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql
2016-04-29 10:10:41 +0000: Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
2016-04-29 10:10:41 +0000:
2016-04-29 10:10:41 +0000:
2016-04-29 10:10:41 +0000:
2016-04-29 10:10:41 +0000: pg_restore: creating SEQUENCE answer_seq
[...]
2016-04-29 10:10:48 +0000: pg_restore: executing SEQUENCE SET category_seq
2016-04-29 10:10:49 +0000: pg_restore: processing data for table "file"
2016-04-29 10:11:31 +0000: out of memory
2016-04-29 10:11:31 +0000: waiting for restore to complete
2016-04-29 10:11:31 +0000: restore done
2016-04-29 10:11:31 +0000: waiting for download to complete
2016-04-29 10:11:31 +0000: download done
Ich dachte zuerst, es könnte aufgrund der Tabelle Datei, die BLOBS enthält. Aber ich kann nicht verstehen, warum es ein Problem sein sollte. Die größte Datei ist 4 MB. Die Protokolle geben auch an, dass nur 19,4 der 100 MB importiert wurden.
Ich verwende die folgende Version des Heroku toolbelt:
heroku-toolbelt/3.43.0 (x86_64-linux-gnu) ruby/2.1.5
heroku-cli/4.30.0-2dfc0f4 (amd64-linux) go1.6.2
=== Installed Plugins
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
heroku-pg-extras
[email protected]
[email protected]
[email protected]
[email protected]
sind. Haben Sie versucht, 'pg: push' zu verwenden, bevor Sie den manuellen Speicherauszug gehen, Wiederherstellungsart? Wenn das auch nicht funktionierte, wäre die einzige Problemumgehung, die ich mir im Moment vorstellen kann, das Zurücksetzen des Standardklartextmodus und das manuelle Entfernen der fehlerhaften Anweisungen vor dem Wiederherstellen. – janfoeh
Der Speicherauszug ist lokal, aber die ursprüngliche Datenbank befindet sich in einer Umgebung, in der ich den Heroku-Werkzeuggurt nicht ausführen kann. Und so weit ich das verstanden habe, hängt pg: push von der Tatsache ab, dass die Datenbank lokal ist und ich keinen entfernten Host angeben kann. – Steven
Das sieht auch für mich richtig aus. Wie wäre es, den Dump lokal wiederherzustellen und dann 'pg: push' auszuführen? Wenn das gleiche Problem während der lokalen Wiederherstellung auftritt, sollte [diese Antwort] (http://stackoverflow.com/questions/10169203/postgresql-9-1-pg-restore-error-regarding-plpgsql/11776053#11776053) haben du bist bedeckt. – janfoeh