volpe’s diary

フリーランスじゃなくなったプログラマ volpe が日々便利だなぁと感じたことを中心に綴るブログです

Rails で migrate 時に実行される SQL を確認する

以前の記事 のように migrate 時に data メソッドを使ってデータ移行しようとした場合に、実際に db:migrate した際に発行される SQL を確認したい。 なぜなら、spec で単体では上手く動いても、まとめて実行した際に意図した動作にならない時にデバッグしたいから。

やり方としては、ログを表示する rake ファイルを追加し、db:migrate 時に一緒に実行させてあげると、標準出力にSQLのログが出力される。

lib/task/log.rake

task log: :environment do
  ActiveRecord::Base.logger = Logger.new(STDOUT)
end

コマンド

$ bin/rails log db:migrate

地味に便利。