2016-04-28 1 views
3

У меня есть приложение OTP (на самом деле, ChicagBoss). Я пытаюсь включить приложение Phoenix в него (как просто случайное приложение OTP).Конфигурационный файл для приложения MIX как приложение OTP

Я думаю, что большинство приложений запускается, но я получил ошибку, вызванную отсутствием файла конфигурации. Как предоставить файл конфигурации в приложение MIX извне? Особенно, если я попробую запустить его из арматуры. Как предоставить каталог?

+2

Что говорит об ошибке? Какой файл конфигурации он сказал, пропал? Какое приложение не удалось запустить в результате? Трудно помочь без такой информации. –

+0

Это было заявление репо (связанное с Ecto, я думаю). Но я видел те кордиглеты в конфигурационном файле. Я не знаю, как сообщить Mix app о файле конфигурации. – Saczew

ответ

2

При использовании проекта Erlang вы не должны использовать конфигурацию mix, а вместо этого - конфигурацию 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. Например, адаптер Ecto сверху станет:

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

Просто помните, что foo: "bar" список ключевых слов [{foo, <<"bar">>}] и модуль имен в эликсира Foo атомов в Erlang 'Elixir.Foo'.

Второй вариант - использовать проект зонтика Эликсира, который тянет и Чикаго Босса и Феникса. В этом случае вам нужно будет перевести конфигурацию босса в Elixir.

+2

Я думаю, что это именно то, что я искал. Dzięki! – Saczew

Смежные вопросы