activerecord-importのクエリログを無効化する

公開日時
更新日時

activerecord-importを使ってbulk insertを行う際に、ログにinsert文が残ってしまうのをなんとかしたい。

そこで、以下のように一時的にログを無効化して処理が終わったあとに戻すようにした。

old_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil
Book.import books
ActiveRecord::Base.logger = old_logger

検索すると[[ActiveRecord::Base.logger.silence]]を使う方法が出てくるがRails3以降は使えないので注意。

参考


Related #ruby

Sidekiqで指定時間待ってから実行する

perform_inを使う

Active Jobで指定時間後にジョブを実行する

setメソッドの引数にwaitを指定する

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした

Railsログに^{[0m ^{[1mが残るのを止める

colorize_loggingを無効化

Sidekiqの管理画面にBasic認証を設定する

initializerに設定を追加

Bulletをテスト環境で実行してN+1を調査する

bulletのおかげで見落としていたN+1に気づける