config / database.yml和DATABASE_URL之间的优先级

时间:2014-09-25 21:46:21

标签: ruby-on-rails rspec

如果config / database.yml和DATABASE_URL都存在并且相互冲突,那么在Rails的情况下如何解决冲突? RSpec的答案有何不同?

2 个答案:

答案 0 :(得分:0)

Rails总是依赖于config / database.yml。由于rspec加载rails环境来运行规范,因此它的行为方式完全相同。当然,除非你自己加载了activerecord,我认为情况并非如此。

使用DATABASE_URL环境变量只是一种很好的做法configuration scheme,以避免将敏感数据放入版本控制中。人们通常在实践中做的是使用此变量中定义的值来设置config / database.yml中的值,例如

host: <%= ENV["DATABASE_URL"] %>

干杯!

答案 1 :(得分:0)

基于使用Rails 4.0.4进行测试,DATABASE_URL环境变量完全优先于Rails。可以在http://api.rubyonrails.org/v4.0.0/classes/ActiveRecord/ConnectionHandling.html#method-i-establish_connection

中找到对DATABASE_URL的引用