migrationファイルにPROCEDUREを書く方法(Rails3)
Rails+MySQLな環境で、日時処理なんかでカラムの値を集計する場合、簡単な集計処理ならバッチを書かずにプロシージャに任せて、イベントスケジューラ実行、なんてことがあると思います。
Railsで開発してるとプロシージャもmigrationファイルに書く必要があると思うんですが、その備忘録
def up
execute "CREATE PROCEDURE hogehoge_summary()
BEGIN
プロシージャ本文
END"
enddef down
execute "DROP PROCEDURE IF EXISTS hogehoge_summary"
end
別に気を付ける部分もないと思うんですが、migrationのなかではデリミタ指定が使えないのと、そのせいでcreateとdrop if existsが一緒に書けないのでupとdownでわけないとダメでした。
うーん、rubyアイドルと恋に落ちたい。