#ruby-on-rails #postgresql #heroku
#ruby-on-rails #postgresql #heroku
Вопрос:
У меня есть очень простое приложение, развернутое на Heroku, которое собирало данные за последние полторы недели. Теперь я хочу сделать еще несколько разработок на сайте и хотел бы скопировать данные из моей базы данных производственного приложения в базу данных, используемую для моей разработки.
Я добавил pgbackups, используя следующую команду:
heroku addons:add pgbackups
Затем я захватил производственную базу данных, используя
heroku pgbackups:capture
Когда я запускаю heroku pgbackups
, я вижу следующее:
ID Backup Time Status Size Database
---- ------------------------- ------------------------------------ ------ --------- ---------------------------------
b001 2014/06/19 13:31.08 0000 Finished @ 2014/06/19 13:31.10 0000 27.7KB HEROKU_POSTGRESQL_AMBER_URL (DATABASE_URL)
Теперь я пытаюсь использовать следующую команду для восстановления этой резервной копии в моей базе данных разработки на Heroku (оранжевый)
heroku pgbackups:restore HEROKU_POSTGRESQL_ORANGE b001
но я получаю следующее сообщение:
! Unknown database: HEROKU_POSTGRESQL_563f103f. Valid options are: DATABASE_URL, HEROKU_POSTGRESQL_AMBER_URL
Возможно ли делать то, что я хочу, и если да, то как мне это сделать? Последние пару часов я пытался найти ответ, но меня смущает концепция разработки-постановки-производства. Все, что я нахожу, относится к копированию базы данных из рабочей в промежуточную, но, насколько я вижу, я пытаюсь скопировать из рабочей в разработку. Спасибо, что посмотрели
Комментарии:
1. Занимался этим весь день и еще не разобрался. Кто-нибудь может помочь?
Ответ №1:
Находятся ли базы данных в двух отдельных приложениях, то есть в приложении для разработки и в производственном приложении? Если это так, попробуйте использовать команду pgbackups:transfer для передачи данных между приложениями. Документы доступны здесь.
В принципе, попробуйте:
heroku pgbackups:transfer HEROKU_POSTGRESQL_AMBER_URL <development app name>::HEROKU_POSTGRESQL_ORANGE -a <production app name>
Комментарии:
1. Я попробовал это, и это не сработало. Я думаю, мне придется попробовать настроить промежуточную среду. В любом случае, спасибо, Алекс
2. Для всех, кто столкнулся с этим, я использовал отличный учебник здесь ( mattboldt.com/heroku-staging-production-environments ) для настройки отдельных промежуточных и производственных сред (обе работают с одной и той же базой данных)
3. Ответ Алекса выше верен. Я не добавлял pgbackups в свое приложение для разработки, но как только я это сделал, я смог скопировать базу данных, используя команду, которую он дает выше. Спасибо, Алекс