2014-11-25 2 views
1

Для некоторого Heroku pgbackups причины: восстановление не будут работать на моих рельсах приложении,Heroku pgbackups: восстановление не работает на рельсы приложении

Я создаю мой файл дамп с помощью команды:

pg_dump -F c -v -U john -h localhost project_development > -f dumpfile.dump 

I затем загрузите его в Dropbox, так как документация heroku говорит, что нужно загружать где-нибудь URL с HTTP-доступом. После того, как я загрузил файл в Dropbox, я затем запустить команду

heroku pgbackups:restore HEROKU_POSTGRESQL_RED_URL 'https://dl.dropboxusercontent.com/content_link/JgHkmg0iv8vIMKWqlN6medJqjClPeWYl2AQqJWV8IeEiujnfYvPdtvq7xh26dvCQ' 

выход которого

Retrieving... done 
Restoring... done 

HEROKU_POSTGRESQL_RED_URL мой URL базы данных и строка в одинарных кавычках является сырьевой версией моего файла дампа (в документации по Dropbox показано, как превратить dl-файл в необработанный файл).

Но всякий раз, когда идет в приложениях страницы я получаю ошибку, я могу увидеть запуск heroku logs, что ошибка ошибка базы данных

PG::UndefinedTable: ERROR: relation "listings" does not exist 
LINE 1: SELECT "listings".* FROM "listings" ORDER BY listings.pri.. 

Кроме того, когда я бег heroku pg:info я вижу, что ничего фактически не было вставляется в базу данных

=== HEROKU_POSTGRESQL_RED_URL (DATABASE_URL) 
Plan:  Hobby-dev 
Status:  Available 
Connections: 2/20 
PG Version: 9.3.4 
Created:  2014-10-21 15:24 UTC 
Data Size: 7.0 MB 
Tables:  0 
Rows:  0/10000 (In compliance) 
Fork/Follow: Unsupported 
Rollback: Unsupported 

Может кто-нибудь сказать мне, почему моя база данных не обновляется? Благодарю.

+0

Попробуйте добавить '--no-acl -no-owner' в команду pg_dump. –

+0

попытался, но моя команда pg_dump не удалась из-за слишком большого количества аргументов командной строки, я не думаю, что проблема pg_dump является проблемой, потому что я могу посмотреть на файл дампа и увидеть, что он был правильно сделан, это загрузка, которая, по-видимому, является проблема. –

+0

Убедитесь, что эти аргументы находятся перед именем вашей базы данных. Например: 'pg_dump -F c -v -U -no-acl -no-owner john -h localhost project_development> -f dumpfile.dump' –

ответ

1

Я проверил это на пустой базе данных hobby dev с герокой. Вам не нужно включать опции no-owner и no-acl (-x -O), но это считается хорошей практикой, поскольку эти инструкции с изменениями не сработают.

Проблема с командой дампа паразитной >

pg_dump -F c -v -O -x -U john -h localhost project_development -f dumpfile.dump 

Загрузите полученный файл в Dropbox или s3 и попробуйте снова восстановить. Если есть ошибки, вы можете запустить

heroku logs -n 100 --ps pgbackups 

Чтобы просмотреть выход журнала из команды pg_restore.

+1

aha! поэтому команда 'pg_dump', похоже, отлично работает в любом случае, но команда' heroku logs -n 100 -ps pgbackups' работала хорошо! Я видел в журналах много «Недопустимый формат дампа: /tmp/QeLqxGAVkX/dumpfile.dump: HTML document text», и это было потому, что всякий раз, когда герой пытался получить доступ к моей ссылке, он истек, поэтому я только когда-либо получал доступ к Dropbox 404 ... но я нашел второй способ создания ссылки, которая не заканчивается 'https: // dl.dropboxusercontent.com/s/l0qb4vjadliiffc/dumpfile.dump', просто перейдя в файл и изменив www. dropbox в URL-адресе dl.dropboxusercontent! Благодаря! –

Смежные вопросы