2013-01-04 37 views
7

我正在創建一個rake任務來移除一些表和觸發器。ActiveRecord :: ConnectionNotE建立在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 aborted! 
ActiveRecord::ConnectionNotEstablished 

如何允許任何建議耙任務連接到數據庫來執行原始的SQL?謝謝

回答

21

您沒有在Rake任務中加載Rails應用程序,所以ActiveRecord從不創建數據庫連接。

更改耙任務:

task :remove_rubyrep => :environment do 

這樣做後,您將不再需要「establish_connection」行

+0

純粹的天才,謝謝 – AnApprentice

相關問題