Rails3:如何设置特定于项目的bash环境变量?

jpw*_*ynn 3 bash ruby-on-rails

我的应用程序使用了几个环境变量(在本地开发机器上的〜/ .bashrc中,以及远程heroku应用程序上的heroku配置变量).

由于我本地计算机上的所有ENV变量都在同一个文件中,因此我必须小心地命名它们以避免不同应用程序之间的冲突.

如何在本地计算机上设置特定于我在本地运行的特定应用程序的环境变量?

例如,要在本地运行app_one:

cd app_one  
run_something (that loads the env vars then runs rails server)
Run Code Online (Sandbox Code Playgroud)

mu *_*ort 9

如果您正在使用RVM,那么您可以将特定于应用程序的环境变量放在应用程序的.rvmrc文件中.

例如,假设您有两个应用程序,pancakeseggs设置如下:

~/src/pancakes/
~/src/eggs/
Run Code Online (Sandbox Code Playgroud)

和两个这样的.rvmrc文件:

# ~/src/pancakes/.rvmrc
export APP_NAME=pancakes

# ~/src/eggs/.rvmrc
export APP_NAME=eggs
Run Code Online (Sandbox Code Playgroud)

然后:

$ cd ~/src/pancakes
$ echo $APP_NAME
pancakes
$ cd ~/src/eggs
$ echo $APP_NAME
eggs
Run Code Online (Sandbox Code Playgroud)

此方法的另一个优点是可以将所有特定于应用程序的设置保留在应用程序中,并且可以轻松地将特定于应用程序的环境变量保持在版本控制之下.您还可以将一个小解析器连接到您的发布过程,以从您的.rvmrc文件中提取必要的设置并在Heroku上设置它们.