2017-08-14 84 views
2

當前的環境下我下面鳳書裏面說:如何知道哪些是我在鳳凰框架

要小心。 ecto.migrate任務將遷移當前環境的數據庫。到目前爲止,我們一直在運行開發環境。 要更改環境,請設置MIX_ENV操作系統 環境變量。

但是我不知道哪個是mi當前環境,我打印回顯MIX_ENV變量,它是空的,我怎麼知道我在哪個環境和/或從環境變化?

+0

的'MIX_ENV'環境變量將默認爲':dev'。 –

回答

4

如果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 
0

我在config /(dev | prod).exs中定義了一個sitetype,如下所示,並使用Application.get_env(:app_name, :site_type)獲取站點類型。通過這種方式,即使prod env分發給酒廠也可以獲得該類型。

config :app_name, :site_type, :devconfig :app_name, :site_type, :prod