我有一个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