2012-05-03 135 views
0

我正在關注Ryan設置VPS的railscast。但我需要安裝mysql而不是postgresql。運行rake db時發生錯誤:migrate

當我運行cap deploy:cold命令時,它似乎都運行良好,直到它運行該包,當嘗試安裝mysql2 gem時失敗。

所以我登錄到服務器並手動安裝它(數據庫已經安裝)。

但是當我運行耙分貝:遷移命令我不斷收到此錯誤:

rake aborted! 
database configuration does not specify adapter 

Tasks: TOP => db:migrate => db:load_config 

在database.yml文件中,我有以下

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: blog_production 
    pool: 5 
    username: blog 
    password: ***** 
    host: localhost 
    socket: /var/run/mysqld/mysqld.sock 

我編輯的插座從默認情況下,添加和刪除主機線,並手動安裝了寶石,但似乎沒有任何工作!

回答

5

這通常發生在您的部署腳本或VPS上當前登錄的用戶未設置RAILS_ENV環境變量時。然後它默認爲'開發',你的database.yml將沒有該環境的配置。所以試試

RAILS_ENV=production bundle exec rake db:migrate --trace 

改爲。

+0

謝謝我已經試過這個,但我得到這個錯誤...耙中止! 未定義的方法'接受'爲零:NilClass – Lievcin

+0

你可以用trace參數運行它併發布結果嗎?我更新了答案。 – moritz

+0

我已經通過替換database.yml文件解決了問題,也許這個文件上的縮進存在一些問題,但是現在它運行了沒有問題的遷移...很酷! – Lievcin

2

損壞的yml文件爲我解決了它。

重命名並重新創建database.yml文件,它工作。

相關問題