2015-08-28 24 views
2

我試圖轉儲我的遠程數據庫的結構使用耙的rake db:structure:dump,但每當我運行該命令它忽略用戶在我的database.yml文件並使用用戶在我登錄的本地機器上。Rails:Postgres +耙分貝:結構:轉儲使用錯誤的用戶

的database.yml:

development: &DEFAULT 
    adapter: postgresql 
    host: remoteaddress.com 
    port: 5432 
    user: myusername 
    password: mypassword 
    database: mydatabase 

這是當我運行該命令會發生什麼:

[~/src/myapp]$ RAILS_ENV=development rbbe rake db:structure:dump --trace                                           ✭ git:em-redshift ruby:2.2.0 
** Invoke db:structure:dump (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Execute db:structure:dump 
pg_dump: [archiver (db)] connection to database "mydatabase" failed: FATAL: password authentication failed for user "emai" 
FATAL: password authentication failed for user "emai" 
rake aborted! 
Error dumping database 
/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/tasks/postgresql_database_tasks.rb:55:in `structure_dump' 
/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:182:in `structure_dump' 
/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/railties/databases.rake:276:in `block (3 levels) in <top (required)>' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:240:in `call' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:240:in `block in execute' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:235:in `each' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:235:in `execute' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:179:in `block in invoke_with_call_chain' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/task.rb:165:in `invoke' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:150:in `invoke_task' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `each' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:100:in `top_level' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:78:in `block in run' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling' 
/opt/rubies/2.2.0/lib/ruby/2.2.0/rake/application.rb:75:in `run' 
/opt/boxen/rbenv/versions/2.2.0/bin/rake:33:in `<main>' 
Tasks: TOP => db:structure:dump 

正如你所看到的,它不使用myusername的用戶。相反,它運行它作爲我的本地用戶(emai)。到底是怎麼回事?

P.S.我知道db配置也可以,因爲我進入rails控制檯並查詢記錄並獲得結果。此外,rake db:schema:dump不會發生認證錯誤。

回答

0

僅僅指剛與username取代user