AnA*_*ice 7 postgresql ruby-on-rails ruby-on-rails-3 postgresql-9.1
我正在创建一个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
Run Code Online (Sandbox Code Playgroud)
我尝试这样运行:
rake remove_rubyrep
RAILS_ENV=development rake remove_rubyrep
Run Code Online (Sandbox Code Playgroud)
问题是rake任务错误:
rake aborted!
ActiveRecord::ConnectionNotEstablished
Run Code Online (Sandbox Code Playgroud)
有关如何允许rake任务连接到DB以执行原始sql的任何建议?谢谢
wle*_*ss1 23
您没有在rake任务中加载rails应用程序,因此ActiveRecord永远不会创建数据库连接.
将您的rake任务更改为:
task :remove_rubyrep => :environment do
Run Code Online (Sandbox Code Playgroud)
完成后,您将不再需要"establish_connection"行
| 归档时间: |
|
| 查看次数: |
2794 次 |
| 最近记录: |