Ответ 1
Вы можете использовать Mix.env/0
:
iex(1)> Mix.env
:dev
В Phoenix Framework, как я могу получить текущее имя среды?
Я уже пробовал читать переменные env
с помощью System.get_env("MIX_ENV")
, но значение не всегда установлено.
Вы можете использовать Mix.env/0
:
iex(1)> Mix.env
:dev
Mix.env
не работает в производственных или других средах, где вы используете скомпилированные выпуски (созданные с использованием Exrm/Distillery) или когда Mix
просто недоступен.
Решение заключается в том, чтобы указать его в файле config/config.exs
:
config :your_app, env: Mix.env
Затем вы можете получить атом среды в вашем приложении следующим образом:
Application.get_env(:your_app, :env)
#=> :prod
Теперь в каждом файле конфигурации среды (например, prod.exs
), сгенерированном по умолчанию, вы увидите, что атом среды устанавливается в последней строке:
config :your_app, :environment, :prod
Затем вы можете использовать Application.get_env(:your_app, :environment)
чтобы получить его.
Вы можете сделать то же самое в любой пользовательской конфигурации среды, которую вы создаете.