7

いくつかのテーブルとトリガーを削除するためのrakeタスクの作成に取り組んでいます。

私のレーキタスク:

task :remove_rubyrep do
  sql = <<-SQL
    DROP TABLE rr_logged_events, rr_running_flags, rr_pending_changes;
  SQL
  ActiveRecord::Base.establish_connection
  ActiveRecord::Base.connection.execute(sql)
end

私はこれを次のように実行してみました:

rake remove_rubyrep
RAILS_ENV=development rake remove_rubyrep

問題は、次のようなrakeタスクエラーです。

rake aborted!
ActiveRecord::ConnectionNotEstablished

rakeタスクがDBに接続して生のSQLを実行できるようにする方法に関する提案はありますか?ありがとう

4

1 に答える 1

23

rakeタスクでrailsアプリケーションをロードしていないため、ActiveRecordがデータベース接続を作成することはありません。

レーキタスクを次のように変更します。

task :remove_rubyrep => :environment do

その後、「establish_connection」行は不要になります

于 2013-01-04T19:55:42.560 に答える