タグ

dbixに関するamari3のブックマーク (5)

  • あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix

    こちら Yappo の日でございますが、 Yappo の執筆ペースが芳しくないので、日も社員のオオサワが代打で「DBI」や「ORM」について書かせて頂きたいと思います。 trigger / hook point insert, update, delete クエリの前後処理を拡張して、レコード作成時刻の設定や update 時刻の更新はたまたレコード削除時に削除テーブルへの自動コピー等を、一度ベースクラス上で定義しておけば新しく作るテーブルへも use parent する等して簡単に適用出来きるように便利になりますが、うっかりしてると後続の開発者がハマったり制約が出てきます。 DBMS の trigger ORM の機能の trigger を多用していると、後続は DBMS 体の trigger を使う事に躊躇します。使っちゃいけないというわけではないでしょうが、一つのクエリに対する副

    あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix
  • SQL::Interpで生がお好きなあなたも満足 - Articles Advent Calendar 2011 Dbix

    Perl AdventCalendar初投稿でドキドキしているriywoです。目指せhirose31ということで「コードも書けるインフラエンジニア」を所望していますが、正直、DBI使ってゴリゴリアプリとか作ってない。。。限りなくひとりDBIx::Casual Trackではありますが、そんな僕だからこそ書けるゆるふわなエントリをどうぞ! 情弱なんで生SQLがいいんです。。。 Tengとかすごい魅力的なんですが、ゆるふわ過ぎてついつい生でSQLを書きたくなります。ORMのメソッド覚える努力をしないだけ情弱なんですが、特にインフラはいつも慣れ親しんでいるSQLをそのままアプリでも使いたくなっちゃいます。 とは言え、こんなコードを書いてしまうと色々と残念な感じです(注:2年前くらいの僕)。 my @line = `mysql -N -uuser -ppass hoge -e "select *

    SQL::Interpで生がお好きなあなたも満足 - Articles Advent Calendar 2011 Dbix
    amari3
    amari3 2011/12/21
    この組み合わせいいかも!
  • DBI::Profileでお手軽プロファイリング - Articles Advent Calendar 2011 Dbix

    aloelightです。 みなさん、DBIx書いてますか?私は5年以上はPerlを使っていますが、DBIxを書いたことがありません。CPANの既存ライブラリとDBIの基機能で間に合ってしますからです。今日はDBI付属の機能の中からDBI::Profileを紹介したいと思います。 どんな時に使うの? 開発時には何気なく実行してたけど、なんかこの機能が遅いような気がする。そんなことありませんか? MySQLではEXPLAINを使ってクエリの実行計画を確認することで、そのクエリがなぜ遅いかを判断することができますが、その前にどのクエリが遅いかを判断しなければいけません。お手軽さを求めるなら、DBI::Profileを使うのがいいんじゃないでしょうか。 使い方 DBI::Profileの使い方はいくつかありますが、今回は$ENV{DBI_PROFILE}にセットする方法を使います。他には$dbh

    DBI::Profileでお手軽プロファイリング - Articles Advent Calendar 2011 Dbix
  • DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix

    こんにちは、最近 PSP1000 の電池が一瞬で切れてしまってまともにゲームができない xaicron です。 さて、みなさんは DBI から吐かれた SQL をみたいなーと思うこともあるでしょう。 そんな時は、$ENV{DBI_TRACE} = 2 とかしてみると、ドバーッといっぱいデバッグログが出てきて、 その中に実際に発行された SQL がちょろっと出てたりするのでこいつを頑張ってパースすればいい感じですね! っていうのはだいぶ面倒だったりしますね。あたりまえですね。 そこで、use するだけでとりあえず全部の発行された SQL を STDERR にはいてくれるモジュールを書きました。 その名も DBIx::QueryLog です。そのままですね。 つかいかた 使い方は至極簡単で、どっかで適当に use するだけです。ほかには何もいりません。 そうすると、以下のような感じで STDE

    DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix
    amari3
    amari3 2011/12/12
  • DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix

    こんにちは!nekokakです! 今年はボクが作ってるDBIx::Handlerというものを紹介してみる。 DBIx::HandlerはDBIのラッパーでありDBのコネクション周りの管理に重点を置いたモジュールである。 ORMを使わずにDB周りの処理を行いたい場合はこのDBIx::Handlerを使うことをおすすめする。 自分でDBIのインスタンスを生成し利用する場合どこまで正しくコネクション管理をあなたはできますか? そもそも親プロセスで接続したdbのインスタンスを子プロセス側でも利用することの問題を正確に把握していますか? そこまで正しく細かく理解し自分で実装できたとしてもだ、新しいプロジェクトを作るたびにそのコードをコピペするのか? そこでDBIx::Handlerの出番だ。 DBIx::Handlerはそのあたりの処理をすべて面倒みてくれる。 もうあなたは いつDBとの接続が着られ

    DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix
  • 1