Подтвердить что ты не робот

Добавление промежуточной среды в рабочий процесс

В настоящее время у меня есть две среды, в которых я работаю: development локально и production на Heroku.

Я хотел бы добавить среду staging на Heroku, чтобы увидеть, что все идет так, как ожидалось, прежде чем подталкивать приложение к пользователям. Предпочтительно, среда staging должна иметь те же настройки и данные, что и среда production.

Каковы шаги, необходимые для выполнения вышеуказанного?

4b9b3361

Ответ 1

Сначала предрасположенности, мне нравится, чтобы мои геройки git создавались как постановка и производство, поэтому вы можете легко использовать git push-постановку/создание для развертывания для каждого из них. Я буду использовать эту настройку, чтобы объяснить, как создать промежуточную версию.

  • создайте config/environments/staging.rb, который вы скопируете из `config/environment/production.rb '
  • добавить запись database.yml для промежуточной базы данных (не обязательно для геройку, но не может повредить)
  • Сохраните файл .env(если он у вас есть)
  • Установите плагин heroku-config на heroku plugins:install git://github.com/ddollar/heroku-config.git
  • потяните настройки среды от героку (производственный сервер) с помощью heroku config:pull --remote production
  • внесите изменения в файл .env и не забудьте добавить эти значения в конфигурацию: RACK_ENV=staging RAILS_ENV=staging, чтобы он использовал конфигурацию промежуточной среды.
  • fork the heroku окружающая среда с heroku fork -a production staging (это имена героя, которые вы хотите вместо создания/постановки)
  • Сделайте конфигурацию `heroku: push -remote staging '
  • Обязательно развернуть код для правильной настройки env

Вы также можете прочитать этот учебник, я думаю, что использовал его, чтобы начать с нескольких envs на heroku: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations

Ответ 2

Я нашел heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAME более быстрый и простой способ сделать это... он создает новое приложение, копирует все (включая базу данных postgres). Затем я вошел и вручную переопределил аддоны на более мелкие планы, когда это имело смысл (например, база данных начального уровня).

Фактически, мы начали использовать относительно новый heroku pipeline:promote для автоматического управления (и ОЧЕНЬ быстро), нажимая скомпилированный слизень из этапа в производство. (Предполагается, что у вас есть какие-либо env-специфические настройки через настройки или переменные окружения, поэтому пул кода одинаков.)

Ответ 3

Обратите внимание, что процедура, поясняемая berislavbabic, не рекомендуется в соответствии со следующим руководством на сайте Heroku: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations

Здесь вы можете прочитать подробную информацию, но рекомендация состоит в том, чтобы поддерживать промежуточную среду так же, как и производственную среду, и просто использовать вилку героику для копирования из производства в стадию.