Heroku pgbackups: restore: неверный формат дампа
У меня есть локальная дампа базы данных psql, которую нужно загрузить в герою. Я выполнил шаги в разделе "Обновление" из эту ссылку. Все работало нормально до последней части, фактический шаг загрузки:
heroku pgbackups: восстановить --app myAppName DATABASE 'https://www.dropbox.com/myAppPSQLDumpLink/myAppName_local.dump' --confirm myAppName
Вот что появилось в консоли:
HEROKU_POSTGRESQL_SILVER_URL (DATABASE_URL) <---restore--- myAppName_local.dump
Retrieving... done
! An error occurred and your restore did not finish.
И это была ошибка из журналов (любезно предоставлено вопросом Тоби Хеде):
2013-01-09T15:39:09+00:00 app[pgbackups]: Invalid dump format: /tmp/GgUz5yU4bF/project_mgr_development_local.dump: HTML document text
Я попытался найти эту ошибку, но не смог найти ответ. Кто-нибудь знает, что нужно сделать для решения проблемы? Фактический дамп для моей локальной базы данных psql был выполнен следующим образом:
pg_dump -Fc --no-acl --no-owner -U myUserName > myAppName_local.dump
Спасибо!
Ответы
Ответ 1
Похоже, что ссылка на дамп на Dropbox перенаправляет или указывает на HTML-страницу (текст документа HTML в ошибке). Перейдите по ссылке и убедитесь, что вы непосредственно получаете свалку. Или загрузите дамп в своем браузере, щелкните его правой кнопкой мыши и скопируйте ссылку на скачивание. Эта ссылка должна работать с pgbackups: restore.
Ответ 2
Dropbox предоставляет объяснение для непосредственной загрузки файлов (https://www.dropbox.com/en/help/201)
Это может быть полезно для использования ссылок dropbox в pg_backups.
Вкратце говорится, что есть ссылка для скачивания с опцией "dl = 1", а не "dl = 0". Но это не сработало для меня. Даже копирование адреса загруженного файла не помогло мне.
Если вы столкнулись с вышеуказанными проблемами, попробуйте переместить файл в общую папку и скопируйте ссылку. Это сработало для меня.
Ответ 3
Согласно Импорт и экспорт баз данных Heroku Postgres с резервными копиями PG, вы можете восстановить дамп на терминале с помощью
$ curl -o latest.dump `heroku pgbackups:url --app heroku_appname`
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
Ответ 4
Получается та же ошибка, но другая причина, поэтому другое решение. Может быть, это помогает кому-то.
Если вы сохранили файл дампа на сервере с HTTPS и ошибочно использовали HTTP для URL-адреса базы данных, пересылка будет интерпретироваться как документ HTML.
Итак, измените
heroku pgbackups:restore --app myAppName DATABASE 'http://www.example.com/my.dump' --confirm myAppName
к
heroku pgbackups:restore --app myAppName DATABASE 'https://www.example.com/my.dump' --confirm myAppName
Ответ 5
Я попробовал все ответы выше, но никто не работал у меня. Здесь один post Я написал, увидев этот fooobar.com/info/538914/.... Надеюсь, что это поможет кому-то еще.