2012-05-03 13 views
0

RyanがVPSを設定するrailscastに従っています。しかし、私はpostgresqlの代わりにmysqlをインストールする必要があります。rake db:migrate実行時のエラー

cap deploy:coldコマンドを実行すると、mysql2 gemをインストールしようとすると失敗するバンドルが実行されるまで、すべてが正常に動作しているようです。

私はサーバーにログインし、手動でインストールしました(データベースは既にセットアップされていました)。

が、私はすくいデシベルを実行すると:

rake aborted! 
database configuration does not specify adapter 

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

私はソケットを編集した

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

を以下しているdatabase.ymlのファイルに:私はこのエラーを取得しておくコマンドを移行デフォルトから、ホストラインを追加して削除し、手動で宝石をインストールしましたが、何も動作しないようです!

答えて

5

これは、通常、展開スクリプトまたはVPSの現在ログインしているユーザーがRAILS_ENV環境変数を設定していない場合に発生します。それから、デフォルトでは「開発」になり、database.ymlにはその環境の設定がありません。だから、代わりに

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

を試してください。

+0

ありがとう、これを試してみましたが、このエラーが発生しています...レーキが中止されました! 未定義メソッド 'accept 'for nil:NilClass – Lievcin

+0

trace引数を指定して実行し、結果を投稿できますか?私は答えを更新しました。 – moritz

+0

私はdatabase.ymlファイルを置き換えてこの問題を解決しました。おそらくこのファイルのインデントに問題がありましたが、問題なくマイグレーションを実行しました。 – Lievcin

2

ymlファイルが破損しています。

database.ymlファイルの名前を変更して再作成しました。

関連する問題