2016-04-29 3 views
0

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] 
+0

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

+0

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

+0

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

Antwort

Verwandte Themen