zoukankan      html  css  js  c++  java
  • [Elixir004]通过环境变量(Environment Variables)来管理config

    在elixir的config中我们有时会使用的到一些不想暴露出来的配置项,常用的作法是如Phoenix

    #config/prod.exs
    use Mix.Config
    ...
    # Finally import the config/prod.secret.exs
    # which should be versioned separately.
    import_config "prod.secret.exs"

    在上面,我们可以把不应该暴露的项(如数据库passwd,auth_token...这些很重要的项)都写在prod.secret.exs(链接可见例子)中

    我们再把prod.secret.exs这个文件不要加到项目的版本管理中, 单独开一个git仓库管理。

    但是有时我们并不想再这样,还有一种方法(而且感觉比上面这种方法更好用)

    就是把所有的应该写在prod.sesret.exs的项都写到系统的环境变量中

    #config/prod.exs
    use Mix.Config
    
    ....
    config :application_name, ApplicationName.Repo,
      adapter: Ecto.Adapters.MySQL,
      username: System.get_env("PROD_REPO_USERNAME"),
      password: System.get_env("PROD_REPO_PASSWORD"),
      database: System.get_env("PROD_REPO_DATABASE"),
      hostname: System.get_env("PROD_REPO_HOSTNAME")
    ...

    这时只需要在服务器上

    #prod.env
    export
    PROD_REPO_USERNAME='username' export PROD_REPO_PASSWORD='loveyou' export PROD_REPO_DATABASE='database' export PROD_REPO_HOSTNAME='11.11.11.11'

    只需要先

    >source prod.env
    >iex -S mix

    这样就可以通过环境变量来管理elixir的配置啦。


     What benchmarks done on my developer machine look like to all my friends

  • 相关阅读:
    ImageIO 操作图片
    ThreadLocal
    Mysql表字段命令alter add
    php中的for循环和js中的for循环
    获取当前URL地址和$_GET获取参数
    apache中的vhosts的配置。
    PHP获取前台传过来的时间年份,进行处理。
    php中的htmlspecialchars_decode()函数
    php分页类代码和使用
    cookies插件,记住cookies
  • 原文地址:https://www.cnblogs.com/zhongwencool/p/elixir_config_env.html
Copyright © 2011-2022 走看看