如何知道我在Phoenix框架中的当前环境

时间:2017-08-14 22:33:29

标签: elixir phoenix-framework

我正在关注一本凤凰书:

  

小心点。 ecto.migrate任务将为您迁移数据库   当前的环境。到目前为止,我们一直在运行开发环境。   要更改环境,您需要设置MIX_ENV操作系统   环境变量。

但是我不知道哪个是当前环境,我打印回显MIX_ENV变量并且它是空的,我如何知道我所处的环境和/或从环境变化?

2 个答案:

答案 0 :(得分:8)

如果MIX_ENV环境变量为空,则Mix.env默认为:dev

$ iex -S mix
> Mix.env
# => :dev

如果您将MIX_ENV设置为其他现有环境(测试或产品,那么Mix.env将返回它:

$ MIX_ENV=test iex -S mix
> Mix.env
# => :test

无需定义其他配置。

要从配置中获取某些内容,例如Application.get_env/2

Application.get_env(:your_app_name, YourAppName)[:adapter]
# => Ecto.Adapters.Postgres

答案 1 :(得分:0)

我在config /(dev | prod).exs中定义了一个sitetype,如下所示,并获得Application.get_env(:app_name, :site_type)的网站类型。通过这种方式,即使prod env与蒸馏厂一起分发,您也可以获得该类型。

config :app_name, :site_type, :dev    要么 config :app_name, :site_type, :prod