Ruby on rails 为什么rails控制台会忽略我的config/database.yml development:settings?

Ruby on rails 为什么rails控制台会忽略我的config/database.yml development:settings?,ruby-on-rails,ruby,ruby-on-rails-4,rails-console,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Console,My database.yml文件指定了一个非默认数据库:并且没有显式用户名:。如果我使用rails c并尝试访问它失败的任何内容,例如: 2.2.2 :001 > User.connection ActiveRecord::NoDatabaseError: FATAL: role "scope" does not exist 如果我尝试使用my:development设置显式连接,我会看到: 2.2.2 :005 > ActiveRecord::Base.establish

My database.yml文件指定了一个非默认数据库:并且没有显式用户名:。如果我使用
rails c
并尝试访问它失败的任何内容,例如:

2.2.2 :001 > User.connection
ActiveRecord::NoDatabaseError: FATAL:  role "scope" does not exist
如果我尝试使用my:development设置显式连接,我会看到:

2.2.2 :005 >   ActiveRecord::Base.establish_connection :development
 =>
#<ActiveRecord::ConnectionAdapters::ConnectionPool:...
 @config={:adapter=>"postgresql", :encoding=>"unicode", :database=>"scope", :pool=>5, :timeout=>5000, :port=>5432, :username=>"scope", :password=>"...", :host=>"127.0.0.1"},
...
和stacktrace:

2.2.2 :002 >   User.count
ActiveRecord::NoDatabaseError: FATAL:  role "scope" does not exist

    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:665:in `rescue in connect'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `connect'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:242:in `initialize'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `new'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `postgresql_connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
    from /Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
    from /Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:571:in `retrieve_connection'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
... 11 levels...
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/console.rb:9:in `start'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:68:in `console'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `block in require'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require'
    from /Users/me/Documents/projects/deliveries/bin/rails:8:in `<top (required)>'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in `load'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in `block in load'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in `load'
    from /Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'2.2.2 :003 >
2.2.2:002>User.count
ActiveRecord::NodeDatabaseError:致命:角色“范围”不存在
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:665:“连接中的救援”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_-record/connection_-adapters/postgresql_-adapter.rb:655:in'connect'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:242:“初始化”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:44:in“new”
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:44:在“postgresql\u connection”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:438:in'new\u connection'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:448:in'checkout\u new\u connection'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:422:in'acquire\u connection'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:349:“签出中的块”
from/Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/monitor.rb:211:in'mon_synchronize'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:348:在“签出”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:263:“连接中的块”中
from/Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/monitor.rb:211:in'mon_synchronize'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:262:在“connection”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:571:“检索\u连接”中
from/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active\u record/connection\u handling.rb:113:在“检索连接”中
... 11级。。。
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/console.rb:9:in'start'
from/Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/commands\u tasks.rb:68:in'console'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands/commands\u tasks.rb:39:in“run\u command!”
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/railties-4.2.3/lib/rails/commands.rb:17:in`'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:274:in'require'
from/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:274:in`block in require'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u-support/dependencies.rb:240:in'load\u dependency'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:274:in'require'
from/Users/me/Documents/projects/deliveries/bin/rails:8:in`'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:268:in'load'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:268:“加载中的块”中
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u-support/dependencies.rb:240:in'load\u dependency'
来自/Users/me/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.3/lib/active\u support/dependencies.rb:268:in'load'
来自/Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
来自/Users/me/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
from-e:1:in`'2.2.2:003>
更新 使用新的外壳并连接到控制台似乎神奇地解决了问题。我仍然不知道最初损坏的东西是什么…

试试这个:

development:
    adapter: postgresql
    encoding: unicode
    database: XXX_development
    host: localhost
    pool: 5
    username: yourusername
    password: yourpassword

介意分享你的
数据库.yml
?请分享
数据库.yml
和错误的完整堆栈跟踪。@nayiaw和kmrakibulislam更新了我的错误,我确实有数据库:格式为X_开发。但是显式地添加username/password字段并没有改变假设默认db name为scope和user为scope的问题。谢谢你。
development:
    adapter: postgresql
    encoding: unicode
    database: XXX_development
    host: localhost
    pool: 5
    username: yourusername
    password: yourpassword