我有一个使用环境变量的database.yml,如:轨道控制台将无法连接到数据库
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= ENV['RAILS_DB_NAME'] %>
pool: 5
host: 127.0.0.1
port: 3306
username: <%= ENV['RAILS_DB_USER'] %>
password: <%= ENV['RAILS_DB_PASS'] %>
然而,当我使用:
$ export RAILS_DB_NAME="rails_db"
$ rails c production
> User.all
I get an error:
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)
我可以看到我的environement变量在同一个控制台:
> ENV['RAILS_DB_NAME']
"rails_db"
但如果我倾倒活动连接的配置是零:
> ActiveRecord::Base.connection_config
{:adapter=>"mysql2", :encoding=>"utf8", :reconnect=>false, :database=>nil, :pool=>5, :host=>"127.0.0.1", :port=>3306, :username=>nil, :password=>nil}
任何想法发生了什么问题?
如何跟踪为什么rails应用程序没有获取环境变量?
TIA!
更新:我应该澄清$ rails db完美地工作。只有$ rails c无法连接到数据库。
更新2:当我将项目克隆到一个新文件夹和捆绑安装时,它在那里工作得非常好。它必须与我的文件夹。差异不显示任何差异。奇怪的!
对不起,我把它放在上面。它是指定的,也是环境变量。这不是根。上面的错误是因为我称为ENV [](数据库,用户名,密码)的所有三个地方都是零。数据库配置完美工作是我运行$ rails数据库。只有$ rails c没有。 – peterept 2014-09-01 03:44:10