OTP アプリケーション (実際には ChicagBoss) があります。Phoenix アプリを (カジュアルな OTP アプリとして) 組み込みたいと考えています。
ほとんどのアプリケーションが起動すると思いますが、設定ファイルが不足しているため、エラーが発生しました。外部からMIXアプリに設定ファイルを渡すには?特に rebar から実行しようとした場合に、ディレクトリを提供するにはどうすればよいですか?
OTP アプリケーション (実際には ChicagBoss) があります。Phoenix アプリを (カジュアルな 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 に変換して、.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 に変換する必要があります。