ruby-on-rails – 在rake任务中的ActiveRecord :: ConnectionNotEstablished

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在rake任务中的ActiveRecord :: ConnectionNotEstablished前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个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的任何建议?谢谢

解决方法

您没有在rake任务中加载rails应用程序,因此ActiveRecord永远不会创建数据库连接.

将您的佣金任务更改为:

task :remove_rubyrep => :environment do

完成后,您将不再需要“establish_connection”行

猜你在找的Ruby相关文章