Использование различных настроек локально и удаленно в файлах, таких как application.yml - PullRequest
0 голосов
/ 15 августа 2011

В моем приложении есть некоторый код, который изменяется при локальном запуске по сравнению с разработкой на удаленном сервере, например app_domain в application.yml и т. Д. Помимо необходимости вручную изменять их каждый раз, когда я запускаю локально, по сравнению с развертыванием на удаленной машине, Есть ли лучший способ справиться с этим?

Ответы [ 3 ]

0 голосов
/ 15 августа 2011

Мне нравится ответ Мэтью, если у вас нет секретов в этих файлах (пароли).

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

В любом случае, обрабатывайте среду как вещь первого порядка, имеющую данные о ней, которой необходимо управлять.

0 голосов
/ 16 августа 2011

Используя kwateeSDCM, вы можете настроить любой файл во время развертывания на сервере для каждого сервера. Таким образом, вам нужен только один шаблонный application.xml и его параметризация в зависимости от целевого сервера.

0 голосов
/ 15 августа 2011

РЕДАКТИРОВАТЬ - для yml

Это немного зависит от того, как вы загружаете application.yml, но обычно, когда вы загружаете yml-файлы, ruby ​​разбирает все это в хеш для вас. Таким образом, вы можете установить что-то вроде database.yml и структурировать весь yml под ваши различные среды:

development:
    domain: localhost

production:
    domain: mydomain.com

test:
    domain: foo

и затем при загрузке yml-файла вы хотите получить настройки для конкретной среды, в которой вы находитесь, например:

MY_CONFIGS = YAML.load_file("[path to my yaml file]/application.yml")[RAILS_ENV]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...