Самый простой способ вывести базу данных 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.)

Другие вопросы по тегам