在elixir的config中我們有時會使用的到一些不想暴露出來的配置項,常用的作法是如Phoenix 在上面,我們可以把不應該暴露的項(如資料庫passwd,auth_token...這些很重要的項)都寫在prod.secret.exs(鏈接可見例子)中 我們再把prod.secret.exs這個
在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