3

OTP アプリケーション (実際には ChicagBoss) があります。Phoenix アプリを (カジュアルな OTP アプリとして) 組み込みたいと考えています。

ほとんどのアプリケーションが起動すると思いますが、設定ファイルが不足しているため、エラーが発生しました。外部からMIXアプリに設定ファイルを渡すには?特に rebar から実行しようとした場合に、ディレクトリを提供するにはどうすればよいですか?

4

1 に答える 1

2

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 に変換して、.xml ファイル内に配置することだけboss.configです。たとえば、上記の Ecto アダプターは次のようになります。

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

foo: "bar"はキーワード リスト[{foo, <<"bar">>}]であり、Elixir のモジュール名Fooは Erlang のアトムであることを覚えておいて'Elixir.Foo'ください。

2 番目のオプションは、Chicago Boss と Phoenix の両方をプルする Elixir アンブレラ プロジェクトを使用することです。この場合、ボスの設定を Elixir に変換する必要があります。

于 2016-04-29T06:50:16.273 に答える