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

  • 相关阅读:
    TensorFlow Executor解析
    面试复习
    [洛谷]P1880 石子合并问题
    [西建大ACM协会]OJ平台如何使用
    [ACM] 相关OJ及在线运行代码网站
    [MySQL] Win10 安装MySQL5.7.27
    [PTA] PAT(A) 1012 The Best Rank (25 分)
    [PTA] PAT(A) 1011 World Cup Betting (20 分)
    [PTA] PAT(A) 1010 Radix (25 分)
    [PTA] PAT(A) 1009 Product of Polynomials (25 分)
  • 原文地址:https://www.cnblogs.com/zhongwencool/p/elixir_config_env.html
Copyright © 2011-2022 走看看