我有一個使用環境變量的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