スキーマ調査用のSQLログの出し分け議論

@moro, @a_matsudaによるスキーマ調査用のSQLをログ出し分け議論のメモ的まとめ。
0
MOROHASHI Kyosuke @moro

Rails.env.development? の時もスキーマ調査用のSQLをログに出さなくするオプションが欲しいな。実行されてるSQL見るときにさすがにうざったい。

2011-01-27 18:12:51
Akira Matsuda @a_matsuda

@moro あー、なるほどその需要はありそうですね。しかしどう実装したものか難しいかも。log_levelじゃない何か別の概念を持ち込むしかないかなぁ。

2011-01-27 19:21:27
MOROHASHI Kyosuke @moro

@a_matsuda ざっと見たけど、いまの作りだとAdapterごとに別れてるのね。むーんてなった。作るならconfig.activerecord.schema_query_loglevel ||= :debug でどうか。

2011-01-27 19:23:14
Akira Matsuda @a_matsuda

@moro んでもってそのクエリがschema_queryかどうかのフラグかなんかをlogしてるとこまで引き回さなきゃいけないんですよねぇ。なんかちょっとuglyだなぁ。

2011-01-27 19:24:42
MOROHASHI Kyosuke @moro

@a_matsuda abstract_connectionでなんとかならんかしら。とゆうかクエリの元がユーザの都合のものなのか、フレームワークの事情なのかを判別する手立てがあること自体は悪くないと思うのだけど。という抗弁でどうか。

2011-01-27 19:26:30
Akira Matsuda @a_matsuda

@moro んーと、なんとかというと、connection_adapters/abstract/schema_statements.rb のほうの各メソッドになんかフラグを返させてアダプタはいちいちsuper呼ぶようにする感じですかねい?どうなんだろ。

2011-01-27 19:32:05
MOROHASHI Kyosuke @moro

@a_matsuda あー、実装的にはAbstraceだけでいければ楽でいいけど無理そうねー、というのがさっきと、いま改めてみての感想です。各アダプタに書いてまわるのがださいというのは認める。

2011-01-27 19:35:35
Akira Matsuda @a_matsuda

@moro いやぁ、ってかぜんぜんadapterごとに実装バラバラですね。こりゃめんどいわ。って、かぶりましたね。

2011-01-27 19:36:00
Akira Matsuda @a_matsuda

@moro とりあえずJavaとかのInterfaceっていいもんだったんだな、とこれ見てちょっと思いました。

2011-01-27 19:38:57
MOROHASHI Kyosuke @moro

@a_matsuda ちょww モンキーでいいならAbstractAdapter.subclasses.each{|k| k.alias_method_chain (以下略) }でいいんだろうけど、ちゃんと書こうとするとしんどい感じねぇ。

2011-01-27 19:40:11
Akira Matsuda @a_matsuda

@moro そうすねぇ。やるんだったらその機能を入れる前に今のコードをリファクタリングして、ASのhookかなんかAOP的なものでlogするようにしておくべきな感じですかね。

2011-01-27 19:44:05