Можно ли создать многоуровневые определения среды в рельсах? - PullRequest
0 голосов
/ 08 января 2020

Допустим, у меня есть приложение с обычной средой: разработка, подготовка и производство. Затем, скажем, у меня есть набор задач, которые мне нужно выполнить в среде, где определенный c набор параметров конфигурации был переопределен - скажем, хост БД - и эти сценарии (и их переопределения) необходимо запустить в каждой среде.

Одним из решений, которое приходит на ум, является создание целого набора сред для каждого из этих особых случаев, а именно: dboverride-development.rb, dboverride-staging и dboverride-production. Каждая из этих сред наследуется от своей основной среды, но затем переопределяет необходимые параметры конфигурации. Но это кажется громоздким и не требует много репликации кода.

Существуют ли стратегии или соглашения для этого варианта использования в рельсах (в частности, v4)?

1 Ответ

0 голосов
/ 08 января 2020

Вы можете использовать переменные окружения для переопределения любых указанных параметров c, как показано в руководствах Rails.

Если у вас есть config / database.yml, но нет ENV ['DATABASE_URL'], тогда этот файл будет использоваться для подключения к вашей базе данных:

Если у вас установлены оба config / database.yml и ENV ['DATABASE_URL'], тогда Rails объединит конфигурацию вместе. Чтобы лучше понять это, мы должны увидеть несколько примеров.

Когда предоставляется дублирующая информация о соединении, переменная среды будет иметь приоритет:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...