Rails

Rails のコンソールに SQL を表示する

More than 1 year has passed since last update.

はじめに

とある巨大な処理をEC2で rails console を立ち上げて走らせると、

Mysql2::Error: MySQL server has gone away

となりサーバーがゴーンアウェイしてしまいました。
どの SQL を走らせた時にゴーンアウェイしたか調べようとしたものの、私の環境では Rails のコンソールにデフォルトで SQL 文が表示されませんでした。

問題解決のために SQL を表示させる必要があったのと、
今後もこのコマンドにお世話になると思うのでメモとして(別にぐぐったら出てるくんだけどね)

実装

コンソール上で下記コマンドの入力で終了。

ActiveRecord::Base.logger = Logger.new(STDOUT)

まとめ

これでどの SQL 文が実行された時に問題が発生したのかわかるようになりました。
が、そもそもゴーンアウェイしないように DB に優しいコードを書かないといけないので気をつけましょう!(自戒を込めて)

追記

ちなみに SQL を非表示にする時は下記

ActiveRecord::Base.logger = nil