hauleth
Move some configurations in the generated files
Currently Phoenix generates configuration for Ecto in the config/config.exs (I mean option :ecto_repos). Why there? Instead of polluting config.exs (and by extension sys.config) with needless configuration options I believe it would be better to use application env instead. For these unaware of this feature, you can specify “global” configuration within application/0 callback in Mix.Project, ex.:
defmodule MyProject.Mixfile do
use Mix.Project
# …
def application do
[
mod: {MyProject.Application, []},
extra_applications: [:logger],
env: [
ecto_repos: [MyProject.Repo]
]
]
end
# …
end
This will keep only runtime configuration (this option is used almost exclusively in development and testing) in config/config.exs and will not pollute sys.config in the result.
Most Liked
hauleth
The reason is that after some time I come to liking sys.config and in my deployments I could use this directly instead of using additional tools like config providers. But it become troublesome when this file grows larger and larger for no apparent reason.
What I mean is exactly that - have one config file, but keep only runtime configuration there. How often you edit :ecto_repos? This is configuration option needed only for mix ecto.* tasks and is used by anything else, so why the hell it is in config/config.exs at all? This option do not configure my application in any way, only tooling, and to be exact - mostly development tooling, as often you do not have mix in production.
And that is what I am trying to achieve there - hide unneeded entries from users and keep configuration files as simple and short as possible, do not bloat them with compile time and tooling configuration that has nothing to do with my application behaviour.








