Как перенести данные из моей производственной БД в мою промежуточную БД в героку?

Я безуспешно пытаюсь перенести данные из моей производственной БД в промежуточную.

Я следую документации по героку: http://devcenter.heroku.com/articles/pgbackups#transfers

Это команды, которые я запускал...

$ heroku addons:add pgbackups --remote staging
$ heroku addons:add pgbackups --remote production
$ heroku pgbackups:capture --remote production
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote production` --remote staging

И это сообщение, которое я получаю...

Usage: heroku pgbackups:restore [<DATABASE> [BACKUP_ID|BACKUP_URL]]

restore a backup to a database

if no DATABASE is specified, defaults to DATABASE_URL and latest backup
if DATABASE is specified, but no BACKUP_ID, defaults to latest backup

Кажется, я что-то неправильно пишу, но не могу понять.

Я также пробовал ту же команду, используя имя приложения вместо удаленного...

$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging

Но я получаю то же сообщение без фактической передачи.

Любая помощь приветствуется.


person rebagliatte    schedule 10.01.2012    source источник


Ответы (2)


Я не думаю, что вы захватили правильно. Всегда используйте --app вместо --remote

$ heroku pgbackups:capture --app myapp
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging
person Neil Middleton    schedule 10.01.2012
comment
Спасибо, Нил. Я только что попробовал это, и я получаю ошибку ! Resource not found. Я также запускал heroku pgbackups --app myapp, и он правильно показывает мне мои резервные копии, поэтому ресурс есть, он просто не загружает его. - person rebagliatte; 11.01.2012
comment
resource not found обычно возвращается, когда вы используете неправильное имя приложения — оно должно быть таким, как указано на странице myapps на сайте heroku. Команда Neils совершенно правильная, так как я только что сам ее использовал. - person John Beynon; 11.01.2012
comment
Спасибо, Джон, клянусь, я использую правильные имена. Я только что дважды проверил, что работает heroku apps - person rebagliatte; 11.01.2012
comment
Вы уверены, что аутентифицируетесь как правильный пользователь для рассматриваемых приложений? У меня есть несколько учетных записей, и это всегда меня ловит... - person Neil Middleton; 11.01.2012
comment
вам следует попробовать github.com/ddollar/heroku-accounts — это упрощает работу с несколькими учетными записями и героку намного лучше! - person John Beynon; 11.01.2012

Не уверен, изменился ли Heroku с тех пор, как они были опубликованы в январе прошлого года, но когда я запускаю

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging

Я продолжал получать сообщение об ошибке, которое только что сказал

"! Резервная копия не найдена"

Хотя, когда я запустил команду сам по себе, чтобы получить URL-адрес:

heroku pgbackups:url --app myapp

а затем попробовал URL-адрес в браузере, этот URL-адрес БЫЛ правильным.

Поэтому вместо этого я просто попытался отправить скопированный/вставленный URL-адрес в команду, например:

heroku pgbackups:restore DATABASE "http://urlgoeshere" --app myapp-staging

Мне пришлось использовать ДВОЙНЫЕ кавычки вокруг URL-адреса, а не ОДИНАРНЫЕ кавычки. В противном случае я получил эту ошибку:

Неверный синтаксис имени файла, имени каталога или метки тома. «Срок действия» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл. «Подпись» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.

person Gayle    schedule 15.07.2012
comment
У меня была та же проблема, и вставка URL-адреса, как говорит Гейл, сработала для меня. - person Charles Worthington; 08.03.2013
comment
Кто-то прокомментировал в нашем Центре разработки, что столкнулся с той же проблемой, но мне не удалось воспроизвести эту проблему. Можете ли вы сказать мне, какую ошибку вы видели (если что-то большее, чем резервная копия ! не найдена выше), если вы все еще видите проблему, что происходит, когда вы запускаете set -x заранее (запустите set +x после этого, чтобы снова отключить эхо), и какая оболочка и ОС, которую вы используете (я с Heroku Postgres)? - person uhoh-itsmaciek; 07.08.2013