Направляющие: дифференциация подготовки от производства

У меня есть рабочий сервер, и подготовка разъединяют, в котором новые возможности тестируются прежде, чем переместить их в производство. Сервер подготовки физически отличается от производства один (различные хосты с различными URL), но он подражает ему как можно больше (т.е. те же пакеты, те же драгоценные камни, и т.д.).

Rails.env = 'production' на обоих серверах.

Моя проблема состоит в том, что в некоторых случаях мне нужно другое поведение при подготовке, чем в производстве.

Например, новая возможность могла бы послать крупные электронные письма пользователям на производстве; но в то время как я тестирую его, мне отправили бы их в 'тестовый' почтовый ящик.

Что лучший способ состоит в том, чтобы обнаружить сервер, в котором я?

Я хотел бы сделать это максимально "raily".

Большое спасибо.

11
задан Toby Hede 12 August 2010 в 07:44
поделиться

2 ответа

Обычно поэтому вы должны использовать разные среды. Фактически, промежуточная среда обычно очень близка к производственной, но с отключенными вещами, такими как настоящие электронные письма.

Вы не ограничены разработкой / тестированием / производством - вы можете работать в среде с любым именем. Просто создайте файл config / environment / staging.rb, установите там нужные значения и запустите приложение с RAILS_ENV = staging - вот и все. Таким образом, вы можете имитировать свою производственную среду, но при желании включать или выключать функции, если вы не хотите, чтобы они были активными, прежде чем вы действительно начнете работать.

24
ответ дан 3 December 2019 в 04:51
поделиться

Боюсь, этот ответ не очень полезен.

Способ railsy заключается в том, чтобы среды различались только конфигурацией (хост ресурсов, база данных и т. Д.) Для разных сред. Так что другая база данных с пользователями, имеющими фиктивные или тестовые адреса электронной почты, была бы самым простым способом сделать это.

Если вы обычно клонируете из производственной среды, я рекомендую обновить электронную почту всех пользователей с помощью скрипта / dbconsole или скрипта / консоли или просто простого rake задача.

И если вы хотите ограничить / контролировать функции, я бы порекомендовал сделать это через систему контроля версий, то есть развернуть различные версии.

-1
ответ дан 3 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: