Восстановить производственный pgbackup в базу данных разработки на Heroku

#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 в свое приложение для разработки, но как только я это сделал, я смог скопировать базу данных, используя команду, которую он дает выше. Спасибо, Алекс