Elixir 混合应用程序作为OTP应用程序的配置文件

Elixir 混合应用程序作为OTP应用程序的配置文件,elixir,phoenix-framework,otp,elixir-mix,Elixir,Phoenix Framework,Otp,Elixir Mix,我有一个OTP申请(实际上是ChicagBoss)。我正在尝试将Phoenix应用程序合并到它中(只是作为休闲OTP应用程序) 我认为大多数应用程序都会启动,但我得到了由于缺少配置文件而导致的错误。如何从外部为混合应用程序提供配置文件?特别是当我试着从rebar运行它时。如何提供目录?当使用Erlang project时,您不应该使用mix configs,而应该使用Erlang configs。在您的特定示例中,boss.config文件。在boss.config中,您有一个元组列表: [{a

我有一个OTP申请(实际上是ChicagBoss)。我正在尝试将Phoenix应用程序合并到它中(只是作为休闲OTP应用程序)


我认为大多数应用程序都会启动,但我得到了由于缺少配置文件而导致的错误。如何从外部为混合应用程序提供配置文件?特别是当我试着从rebar运行它时。如何提供目录?

当使用Erlang project时,您不应该使用mix configs,而应该使用Erlang configs。在您的特定示例中,
boss.config
文件。在
boss.config
中,您有一个元组列表:

[{app, Options}, {second_app, Options}].
在Erlang shell中,您可以使用以下选项检查给定应用程序的配置:

application:get_all_env(app).
在混合配置文件中,您有如下内容:

config :my_app, MyApp.Repo,
  adapter: Ecto.Adapters.Postgres
您可以通过以下方式检查配置:

Application.get_all_env(:my_app)
您所需要做的就是将配置从Elixir转换为Erlang,并将它们放入
boss.config
中。例如,上面的EXTO适配器将变成:

[...other apps...,
 {my_app, [{'Elixir.MyApp.Repo',
           [
            {adapter, 'Elixir.Ecto.Adapters.Postgres'}
           ]}]},
 ...other apps...
].
请记住,
foo:“bar”
是一个关键字列表
[{foo,}]
,Elixir
foo中的模块名是Erlang
'Elixir.foo'
中的原子


第二个选择是使用Elixir伞形项目,该项目吸引了芝加哥老板和凤凰城。在这种情况下,您需要将boss配置转换为Elixir。

错误说明了什么?它说哪个配置文件丢失了?导致哪个应用程序启动失败?没有这类信息很难帮上忙。这是回购申请(我想是与EXTO相关的)。但我在配置文件中看到了这些conifg元组。我不知道如何让mix app知道配置文件。我想这正是我想要的。天机!