Самый простой способ вывести базу данных Heroku для использования в локальном seed.rb?
Я могу сбросить базу данных героку с $ heroku pgbackups:capture
, Кроме того, этот пост SO показывает, что есть инструменты для того, чтобы взять базу данных разработки и выгрузить ее в seed.rb.
Мне интересно, есть ли простой способ объединить два процесса, эффективно выгружая данные из производственной базы данных Heroku в мой локальный seed.rb для более реалистичного тестирования разработки.
Если это возможно, каков самый чистый способ сделать это?
Обновить:
Исходя из проницательного ответа от dB', я могу рассмотреть возможность использования PGSQL локально. Однако я по-прежнему заинтересован в аспекте seed.rb вопроса, есть ли способ сделать это легко.
2 ответа
Есть несколько способов сделать это. @dB'выделил один из них - с помощью дополнения PG Backups для экспорта вашей базы данных. Это отличный вариант, но включает несколько (тривиальных) ручных команд.
Я бы порекомендовал использовать плагин Heroku CLI для передачи данных за один шаг. Под покровами все еще происходит то же самое, что и при использовании PG Backups, но он упакован немного лучше и имеет некоторые полезные настройки по умолчанию.
Из каталога вашего приложения скопируйте вашу производственную базу данных локально (при условии локальной базы данных PG), установив плагин и выполнив pg:transfer
команда.
$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer
Есть несколько вариантов, которые вы можете установить. Смотрите мою рецензию для более подробной информации.
Надеюсь, это поможет! И да, пожалуйста, используйте ту же базу данных во время разработки, что и в производстве.
Не уверен, что это то, что вы ищете, но вы пытались скопировать базу данных на локальный компьютер, используя pgbackups: capture и pg_restore? Этот подход не использует seed.rb, но все же воссоздает вашу производственную базу данных на вашем локальном компьютере. Это выглядит примерно так.
$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
(Этот код полностью скопирован из объяснения в центре разработки Heroku.)