やり方は簡単、
ActiveRecord::Base.connection.execute(SQL)
で出来る。
で、ハマりどころは、ActiveRecord::Baseのクラスメソッドを直接呼ぶこと。
generate modelで作成したActiveRecord::Baseのサブクラスでこれをやると大変なことに。
class Hoge < ActiveRecrod::Base
end
Hoge.connection.execute(SQL)
とやってみると、処理はすぐに帰ってくるけれども、
状況によってはサーバーが止まる。
一寸調べてわからなかったのであきらめたけど、どうもDBとのコネクションを解放していないらしい。
DBの中身を見ると、サーバーが止まっているにもかかわらず、SQLは実行されているみたいだった。
謎だあ。
PR