Krug.EctoEnviroment behaviour (Krug v2.0.27) View Source
Defines a behaviour for higher-level Ecto enviroments key values.
The module that implement this, should be passed as enviroment:
value option
on module that extends Krug.EnviromentReader
Utilization Example:
defmodule MyApp.Enviroment do
@behaviour Krug.EctoEnviroment
@impl Krug.EctoEnviroment
def get_enviroment(type) do
cond do
(type == "prod") -> get_enviroment_list_prod()
true -> get_enviroment_list_dev()
end
end
end
defmodule MyApp.Enviroment.Reader do
use Krug.EnviromentReader, decisor: MyApp.EnviromentDecisor, enviroment: MyApp.Enviroment
end
Link to this section Summary
Callbacks
Should return an array of strings, based on value received ("dev" or "prod") containing key pars values based on schema: "key=value".
Link to this section Callbacks
Specs
Should return an array of strings, based on value received ("dev" or "prod") containing key pars values based on schema: "key=value".
-Example:
defmodule MyApp.Enviroment do
@behaviour Krug.EctoEnviroment
@impl Krug.EctoEnviroment
def get_enviroment(type) do
cond do
(type == "prod") -> get_enviroment_list_prod()
true -> get_enviroment_list_dev()
end
end
defp get_enviroment_list_dev() do
["APPDB_HOST=127.0.0.1","APPDB_PORT=3306","APPDB_DATABASE=elixir_app_db_development",
"APPDB_USERNAME=root","APPDB_PASSWORD=123456"]
end
defp get_enviroment_list_prod() do
["APPDB_HOST=127.0.0.1","APPDB_PORT=3306","APPDB_DATABASE=elixir_app_db_production",
"APPDB_USERNAME=root","APPDB_PASSWORD=123456"]
end
end