我有一個OTP應用程序(實際上是ChicagBoss)。我試圖將鳳凰應用程序納入它(只是偶爾的OTP應用程序)。MIX應用程序的配置文件爲OTP應用程序
我認爲大部分應用程序都啓動了,但是由於缺少配置文件,我得到了錯誤。如何從外部向MIX應用程序提供配置文件?特別是當我嘗試從rebar運行它。如何提供目錄?
我有一個OTP應用程序(實際上是ChicagBoss)。我試圖將鳳凰應用程序納入它(只是偶爾的OTP應用程序)。MIX應用程序的配置文件爲OTP應用程序
我認爲大部分應用程序都啓動了,但是由於缺少配置文件,我得到了錯誤。如何從外部向MIX應用程序提供配置文件?特別是當我嘗試從rebar運行它。如何提供目錄?
當使用Erlang項目時,您不應該使用混合配置,而是使用erlang配置。在您的特定示例中爲boss.config
文件。在boss.config
你有元組的列表:
[{app, Options}, {second_app, Options}].
在Erlang中殼可以檢查配置對於給定的應用:
application:get_all_env(app).
在組合的配置文件,你碰到這樣的:
config :my_app, MyApp.Repo,
adapter: Ecto.Adapters.Postgres
,你可以檢查配置:
Application.get_all_env(:my_app)
您只需將配置從Elixir轉換到Erlang,並將它們放入boss.config
即可。例如從上面的外生適配器將變成:
[...other apps...,
{my_app, [{'Elixir.MyApp.Repo',
[
{adapter, 'Elixir.Ecto.Adapters.Postgres'}
]}]},
...other apps...
].
只要記住,foo: "bar"
是一個關鍵詞列表中藥劑Foo
[{foo, <<"bar">>}]
和模塊名是在二郎山'Elixir.Foo'
原子。
第二種選擇是使用Elixir雨傘項目,該項目同時拉動芝加哥老大和鳳凰城。在這種情況下,您需要將boss配置轉換爲Elixir。
我認爲這正是我所期待的。 Dzięki! – Saczew
錯誤說的是什麼?它說的那個配置文件丟失了?結果哪個應用程序無法啓動?沒有這種信息很難提供幫助。 –
這是回購申請(與我認爲的Ecto有關)。但是我在config文件中看到了這些conifg元組。我不知道如何讓混合應用程序知道配置文件。 – Saczew