Rails config / local_env.yml vs .env vs bashrc环境变量

时间:2017-08-15 17:21:17

标签: ruby-on-rails ruby environment-variables

我正在阅读此article,您可以使用环境变量创建config/local_env.yml,然后使用config/application.rb读取它以在您导出的环境变量之前替换/获取优先级你的.bashrc。那么.env用于什么呢?它是否与config/local_env.yml

具有相同的用途

1 个答案:

答案 0 :(得分:2)

所有这些方法都用于将环境变量提供给rails应用程序。因此,从应用程序的角度来看,无论您是从.env还是.bashrc还是config/local_env.yml文件导出它,它都有相同的用途。

这些方法的差异实际上是参与维护应用程序开发和部署环境的团队成员的个人选择问题。但是,在选择其中任何一种选择时,需要考虑的事情很少。

.bashrc - 如果您手动配置部署服务器并且非常熟悉linux / unix命令行系统管理,请使用此选项。此配置文件特定于bash shell(Bourne Again Shell)。如果服务器使用不同的shell,则需要配置不同的文件(例如:.zshrc如果它使用Z Shell)

.env - 如果您希望将应用程序中心环境变量保留在应用程序本身中,同时为rails应用程序的不同运行时环境维护环境变量的不同变体,请使用此选项。例如:.env.development.env.test文件分别具有开发和测试环境的特定环境变量值。这使您可以更好地控制应用程序的环境变量,而不必依赖于要部署应用程序的平台(终端shell)。

config/local_env.yml - 这类似于.env方法,由rails gem开箱即用,允许您以yml格式为应用配置环境变量。无论您用于运行应用程序的shell是什么,此方法还可以将应用程序的配置保留在应用程序中。