2016-07-28 53 views
1

我刚刚学习Phoenix和Elixir我很困惑,处理多个机器和环境的环境变量的最佳方法是什么?我一直使用不同的方法,从使用System.get_env,.env文件和提及Mix env's。我还会继续阅读关于在部署时编译env变量的问题。Pheonix框架环境变量

有没有人有解释如何混合变量,系统环境变量和可能的.env文件或.secret文件应该用于本地开发,舞台和生产服务器?

我一直主要在Rails和Python中工作,所以这可能是一个有用的上下文片段。

感谢您的帮助, 科里

回答

0

我个人坚持什么凤凰默认情况下给你,例如使用不同环境的配置文件。由于配置文件是用于应用程序配置的,例如配置数据库适配器,它们被检入到源代码控制中。默认情况下,这些由MIX_ENV环境变量控制。如果你看一下你的主要config/config.exs文件的底部,你会发现这一点:

import_config "#{Mix.env}.exs" 

从我从documentation了解,Mix.env仅仅是用于获取MIX_ENV值的简写。

Phoenix自带配置文件用于“开发”,“产品”和“测试”(全部位于config目录中),您可以自行修改该文件。您还可以轻松添加更多配置 - 例如,如果您想要具有“分段”特定配置,则只需在相关服务器上设置MIX_ENV=staging,然后创建config/staging.exs即可。

对于敏感信息,如API密钥,环境变量更好,因为它们没有签入源代码管理并且可以轻松更改。您可以从配置文件或应用程序中的任何位置访问这些env变量。

希望有帮助!