2016-05-17 3 views
3

После setup instructions, у меня есть следующие конфигурации экто в моем config/config.exs файле:Как настроить Ecto во время выполнения?

config :my_app, MyApp.Repo, 
    adapter: Ecto.Adapters.Postgres, 
    url: "postgresql://[email protected]/myrepo", 
    size: 20 

Если я правильно понимаю, то config.exs вычисляется во время компиляции.

Есть ли способ сделать этот шаг конфигурации во время выполнения?

Это приложение, которое будет распространено как скомпилированное двоичное (через exrm). Конечный пользователь должен иметь возможность настроить URL базы данных и размер пула с помощью флагов или переменных окружения, а не путем редактирования sys.config

ответ

7

Загрузка из системы можно с помощью {:system, "KEY" } например:

config :my_app Repo 
    url: {:system, "DATABASE_URL" }, 
    size: {:system, "DATABASE_POOL_SIZE" } 

вместо

config :my_app, Repo, 
    url: "ecto://postgres:[email protected]/ecto_simple", 
    size: 20 

В этом случае вы настраиваете Ecto для использования свойств системы. Конечно, пользователь должен настроить его.

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