0

データベースに変更を加えようとしており、最初に locahost でテストしています。誰が私の間違いが何であるかを見ることができますか?

lib/tasks/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)
4

2 に答える 2

2
Connection refused - connect(2)

database.yml ファイルを確認しましたか? データベース サーバーまたはユーザーの構成が間違っている可能性があります。

編集:

環境も確認してください。たとえば、実稼働サーバーで rake タスクを実行する場合は、rake コマンドに次のようなプレフィックスを付ける必要があります。

RAILS_ENV=production rake update:country_fix
于 2013-03-17T08:05:12.477 に答える
1

Rake タスク自体は問題ないようです。

Connection refused設定を使用してデータベースに接続する際に問題があると思われますconfig/database.yml。に対応するデータベースが実行されていることを確認しますRAILS_ENV。それをテストする簡単な方法は次のとおりです。

rails db

...現在の DB 構成mysqlpsql現在のRAILS_ENV.

あなたをチェックしてくださいRAILS_ENV

echo $RAILS_ENV

...そして、期待されるデータベースに本当に接続しようとしていることを確認してください。

rails dbうまくいかない場合、修正はデータベースの内容によって異なります。PostgreSQL、MySQL、Mongo、またはほとんどのデータベースの場合は、システムに適したものを使用してサーバーを起動する必要があります。SQLite3 の場合、サーバーはありません。ファイルのアクセス許可の問題がある可能性がありますが、それは別のエラーのようです。

于 2013-03-17T08:08:50.893 に答える