如果config / database.yml和DATABASE_URL都存在并且相互冲突,那么在Rails的情况下如何解决冲突? RSpec的答案有何不同?
答案 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
的引用