2016-01-26 11 views
14

Wie kann ich in Phoenix Framework den Namen der aktuellen Umgebung abrufen?Aktuellen Umgebungsnamen abrufen

Ich habe bereits versucht env Variablen mit System.get_env("MIX_ENV") lesen, aber der Wert ist nicht immer festgelegt.

Antwort

12

Die Antwort ist in http://elixir-lang.org/docs/stable/mix/Mix.html

iex(1)> Mix.env 
:dev 
+0

Dies wird nicht Arbeit in Anwendungscode zur Laufzeit in der Produktion. – atomkirk

+0

'Mix' ist in einer kompilierten Produktionsanwendung nicht verfügbar, so dass' Mix.env' in jedem Code, der in dieser Umgebung ausgeführt wird, den folgenden Fehler verursacht: '(UndefinedFunctionError) undefinierte Funktion Mix.env/0 (Modul Mix ist nicht verfügbar) ' Es ist eine viel bessere Idee, Sheharyar's Antwort zu verwenden. –

16

Mix.env nicht in der Produktion oder anderen Umgebungen funktioniert, wo Sie zusammengestellt Versionen verwenden (gebaut mit Exrm/Distillery) oder wenn Mix nicht verfügbar ist.


Die Lösung ist es in Ihrem config/config.exs Datei angeben:

# config/config.exs 
config :your_app, env: Mix.env 

Anschließend können Sie die Umgebung Atom in Ihrer Anwendung wie diese:

Application.get_env(:your_app, :env) 
#=> :prod 
Verwandte Themen