2013-03-17 56 views
0

我試圖對我的數據庫進行更改,並首先在我的locahost中對其進行測試。任何人都可以看到我的錯誤是什麼?使用名稱空間更新數據庫遷移

在LIB /任務/ update.rake:

namespace :update do 

    desc "Update country" 
    task :country_fix => :environment do 
    Guideline.where(:hospital => 'Maine Medical Center, Maine').each do |t| 
     t.update_attributes(hospital: 'Maine Medical Center') 

    end 

    end 
end 

當我運行

rake update:country_fix 

它給它看上去像(與--trace)的錯誤信息......

** Invoke update:country_fix (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute update:country_fix 
rake aborted! 
Connection refused - connect(2) 

回答

1

rake任務本身看起來不錯。

Connection refused使我相信使用config/database.yml中的設置連接到數據庫時出現問題。檢查並查看與您的RAILS_ENV相對應的數據庫正在運行。一個快速的方法來測試是:

rails db 

...這將打開基於當前的數據庫配置的數據庫控制檯(mysqlpsql等)以及當前的RAILS_ENV

檢查RAILS_ENV有:

echo $RAILS_ENV 

...,並確保你真的試圖連接到數據庫的預期。如果rails db不起作用,修復將取決於您的數據庫是什麼。如果它是PostgreSQL或MySQL或Mongo或大多數數據庫,則必須使用適合您系統的任何內容啓動服務器。如果是SQLite3,則不存在服務器;可能存在文件權限問題,但似乎這是一個不同的錯誤。

+0

謝謝。答案相當愚蠢。我沒有開始solr。感謝您幫助我解決問題。 – tessad 2013-03-18 00:20:59

2
Connection refused - connect(2) 

你檢查了你的database.yml文件嗎?也許你的數據庫服務器或用戶配置錯誤。

編輯:

檢查也是您的環境。如果您在生產服務器上運行rake任務,例如,你應該像這個前綴您的rake命令:

RAILS_ENV=production rake update:country_fix