我在看这篇关于rake命令的文章,但不要在RAILS_ENV的位置。这是在某个特定的文件吗?RAILS_ENV在哪里?
db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
我在看这篇关于rake命令的文章,但不要在RAILS_ENV的位置。这是在某个特定的文件吗?RAILS_ENV在哪里?
db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
RAILS_ENV
只是一个环境变量,它在shell或操作系统本身(或调用进程时)中设置。
环境变量是一组动态命名值,可以影响运行进程在计算机上的行为方式。
它们是进程运行环境的一部分。例如, 正在运行的进程可以查询TEMP
环境变量 的价值发现一个合适的位置来存放临时文件,或HOME
或USERPROFILE
变量来查找运行过程中 用户所拥有的目录结构。
https://en.wikipedia.org/wiki/Environment_variable
ENV["RAILS_ENV"]
只包含一个字符串,如 “生产”, “发展” 或 “测试”。这告诉Rails which configuration file在/config/environments
中加载 - 以及database.yml
中哪个散列键用于数据库。
例如,如果ENV["RAILS_ENV"] == "foo"
Rails会:
/config/environments/foo.rb
foo
。Rails.env.foo?
将是真实的。Rails环境概念因此与一般计算概念有所不同 - Rails环境是一组设置和数据库的更广泛术语,用于不同目的(如自动化测试或生产)。
参见:
它的环境变量,您可以通过在命令前通过它设置您正在执行
RAILS_ENV=production rake db:migrate
您也可以通过在命令
MAIL_USERNAME=user MAIL_PASSWORD=password rails server
之前将它们设置一些其他ENV变量
或者您可以将它们导出到外壳
export MAIL_USERNAME=user
export MAIL_PASSWORD=password
rails server
还有一个叫dotenv
,帮助您轻松地将其储存在一个.env
文件,该文件将不会被推倒git
或任何SVN使用
所以RAILS_ENV用作容器为您打造一个数据库来测试的东西出来?那么你可以有多个RAILS_ENV来尝试在里面使用不同的表格?或者你会不停地在你的开发环境中丢弃和重新设置表格? – stackjlei
不完全是你在想什么.. 但是你可以根据你的需要有不同的环境,如'test','demo','development'和'production' –
你也可以创建你想要的任何环境,只要确保你有'config/environments /#{environment_name} .env' –
据我理解ENV变量宝石,这个“RAILS_ENV”似乎很像环境变量可能是操作系统级别(例如在* uix环境下,使用env检查其值),或者可能是特定于可能在配置文件(.propertie或其他)中设置的运行时。
RAILS_ENV是轨道环境,即开发,生产或分期。
可以使用RAILS_ENV
一样运行于不同的环境命令:
RAILS_ENV=production rake db:migrate #runs migration in production env
RAILS_ENV=test rake db:migrate #runs migration in test env
默认情况下,环境是发展。
设置ENV变量的确切程度取决于shell使用和操作系统。尽管大多数操作系统:es(甚至是windows)都有env vars。 – max