2016-04-28 12 views
3

Ich habe eine OTP-Anwendung (ChicagBoss tatsächlich). Ich versuche, die Phoenix-App einzubinden (als einfache OTP-App).Konfigurationsdatei für MIX-App als OTP-App

Ich denke, dass die meisten Anwendungen starten, aber ich habe Fehler durch fehlende Konfigurationsdatei verursacht. Wie stelle ich eine Konfigurationsdatei für eine MIX-Anwendung von außen bereit? Vor allem in dem Fall, wenn ich versuche, es von Rebar.Wie das Verzeichnis bereitzustellen?

+2

Was sagt der Fehler? Welche Konfigurationsdatei hat es vermisst? Welche Anwendung konnte nicht gestartet werden? Es ist schwierig, ohne diese Art von Informationen zu helfen. –

+0

Es war Repo-Anwendung (im Zusammenhang mit Ecto denke ich). Aber ich habe diese Conifg-Tupel in der Konfigurationsdatei gesehen. Ich weiß nicht, wie man App über Konfigurationsdatei mischen kann. – Saczew

Antwort

2

Wenn Sie ein Erlang-Projekt verwenden, sollten Sie keine Mix-Konfigurationen verwenden, sondern erlang-Konfigurationen. In Ihrem speziellen Beispiel die boss.config Datei. In boss.config haben Sie eine Liste von Tupeln:

[{app, Options}, {second_app, Options}]. 

in Erlang-Shell können Sie die Konfiguration für eine gegebene Anwendung überprüfen:

application:get_all_env(app). 

In MixConfig Dateien haben Sie so etwas wie:

config :my_app, MyApp.Repo, 
    adapter: Ecto.Adapters.Postgres 

und Sie können die Konfiguration mit überprüfen:

Application.get_all_env(:my_app) 

Alles, was Sie tun müssen, ist Konfigurationen von Elixir nach Erlang zu übersetzen und sie in boss.config zu setzen. Zum Beispiel würde der Ecto-Adapter von oben werden:

[...other apps..., 
{my_app, [{'Elixir.MyApp.Repo', 
      [ 
      {adapter, 'Elixir.Ecto.Adapters.Postgres'} 
      ]}]}, 
...other apps... 
]. 

Denken Sie daran, dass foo: "bar" ist eine Keyword-Liste [{foo, <<"bar">>}] und Modulnamen in Elixir Foo'Elixir.Foo' Atome in Erlang sind.

Zweite Option ist Elixir Regenschirmprojekt, das sowohl Chicago Boss und Phoenix zieht. In diesem Fall müssten Sie Boss-Konfigurationen in Elixir übersetzen.

+2

Ich denke, das ist genau das, was ich gesucht habe. Dzięki! – Saczew

Verwandte Themen