DBIx::Skinnyのトランザクション観測したい。
実装書いてるうちに、どのタイミングでcommit/rollback が発行されるのか確認したくなったんだ。
そしたら。
DBIx::Skinny::txn_scope() だと BIGIN と ROLLBACK がDBIx::QueryLog で観測できない……
— Likk (@likk) April 23, 2015
正確にはBEGIN/COMMIT/ROLLBACK
txn_scope を使わずに、search_named() を使うと BEGIN/COMMIT/ROLLBACK はきちんとDBIx::QueryLogのログに吐かれる。かと言ってトランザクション自前管理はしたくない。どうにかDBIx::Skinny::Transactionを観測する方法はないだろうか。普通にwarnするか。
蛇足。
ソースコード見てるうちにちょっとイタズラしたくなった。
DBIx::Skinny::txn_scope(); 張った同一コネクションの中で、DBIx::Skinny::search_named(q{COMMIT WORK},{}); とやるなどして無事コミットされてしまうのを確認した。
— Likk (@likk) April 23, 2015
search とはいったい。
— Likk (@likk) April 23, 2015
#下書きのまま放置していたので公開。
#結局 Test::Mock::Guard 辺りで観測する事に落ち着いた。