Catalyst::Model::CDBI

Catalyst::Model::DBICを使用して開発を始めたのですが、
うまい具合に使用することができず、途中で、Catalyst::Model::CDBIに乗り換えました。

insertした後に、Sequenceを取得できたり、なかなか便利だったのですが、色々変な不具合が起こり、おそらく使用方法の調査不足なのですが、あまり時間もかけてられないので、そういう流れになりました。

それで、Catalyst::Model::CDBIを使用していて気になる点がでてきました。

App::Model::CDBI->db_Main() が存在しないことです。まぁ、App::Model::CDBI::Foo->db_Main()とすれば、存在するのですが、自動で作れているモジュールに、set_sqlでモジュールを追加したいのですが、まぁ、どうやるのか良くわからん。 とりあえず、CDBI内で作成して、FooがCDBIを継承してるから、それを使用するようにしたがまぁ、気持ち悪いなぁ。

それに、コミットもApp::Model::CDBI->dbi_commit() としたいんだが、App::Model::CDBI::Foo->dbi_commit ってしなあかんしなぁ。他の人どうやってるんやろ?

まぁ、小さなシステムじゃないと、App::Model::CDBIは使うべきではないのがわかった。理由は、処理が重すぎる。実際、テーブルを自動的に読み込みするのは、Lazyな私には魅力的なのですが、コストがかかりすぎ。

とりあえず本命プロジェクトでは以下を使うかなぁ。
Catalyst::Model::CDBI::Sweet 、Catalyst::Model::CDBI::Plain

HelperでSchemaを呼んで自動作成してくれたらいいなぁ。

__PACKAGE__->_remember_handle('Main');

App::Model::CDBI->db_Main()

これでいけるっぽい。