タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

dbicに関するYAAのブックマーク (8)

  • 第3回 DBIx::Classでデータベース操作(3) | gihyo.jp

    Resultクラスの拡張 Resultクラス、ResultSetクラスは自分の好みに合わせて拡張できます。 カラムのinflate/deflate $tweet->created_dateのようなつぶやきの日付を取りたい場合、カラムの値そのままではなくDateTimeオブジェクトを返してくれたらうれしいと思います。その機能を実現するのがカラムのinflate/deflate機能です。inflate(膨らませる)は文字どおりカラムのデータをPerlオブジェクトに変換する機能で、deflate(収縮させる)はPerlオブジェクトをカラムデータへ変換する機能です。 Resultクラス内で __PACKAGE__->inflate_column('column_name', { inflate => sub { # カラムデータからオブジェクトを作って返す }, deflate => sub {

    第3回 DBIx::Classでデータベース操作(3) | gihyo.jp
    YAA
    YAA 2010/10/07
  • 第3回 DBIx::Classでデータベース操作(2) | gihyo.jp

    Schema::Loaderの利用 第3回(1)でResultクラスには各テーブルがどのようなカラムを持っているかを定義する必要があると書きましたが、「⁠そのようなテーブル情報はデータベースから自動的に取得できるのでは?」と思った方もいるかもしれません。DBIx::Class::Schema::Loaderという別で配布されているモジュールを使用すると、Resultクラスでのテーブル情報の定義を省略できます。 Schema::Loaderを使うべきか 軽いデータベース操作であればSchema::Loaderがお手軽ですが、そうではない場合はResultクラスにテーブル定義をしっかりと書くのがお勧めです。Resultクラスにテーブル定義を書くべき理由は主に2つあります。 ●DBIx::Classからデータベースを作成できる Resultクラスにテーブル定義を書くと、DBIx::Classから

    第3回 DBIx::Classでデータベース操作(2) | gihyo.jp
    YAA
    YAA 2010/10/07
  • 第3回 DBIx::Classでデータベース操作(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はカヤックの村瀬大輔さんで、テーマはDBIx::Classです。 DBIx::Classとは DBIx::ClassはPerlのO/Rマッピングモジュールです。O/Rマッピング(Object/Relational Mapping、以下ORM)とは、オブジェクト指向言語におけるオブジェクトとリレーショナルデータベースを紐づけるしくみのことで、ORMを使用するとユーザは直感的なオブジェクト操作によってデータベースを操作できるようになります。 DBIx::ClassはPerlORMとしては現在世界で一番使われているモジュールです。日では最近データベース操作モジュールとしてより軽量なDBIx::SkinnyやData::Modelなどの注目が高まってきていますが、機能的に枯れている点や豊富にテストされている点でDBIx::Cl

    第3回 DBIx::Classでデータベース操作(1) | gihyo.jp
    YAA
    YAA 2010/10/07
  • DBIx::Classの覚書 - Ktat's Wiki

    [カテゴリ:Perl] お手軽にShcemaを作る 作られるSQLを見たい ◯◯でなければ作成 見付からなければ作成 更新でなければ作成 find_or_new is null / is not null transaction update_or_create で id => "" を渡すと? countとgroup_by お手軽にShcemaを作るuse DBIx::Class::Schema::Loader DBIx::Class::Schema::Loader::make_schema_at ( "DB::Schema", {debug => 1, relationships => 1}, ["dbi:mysql:dbname"] ); 作られるSQLを見たい$ENV{DBIC_TRACE} = 1; とすれば、STDERRに出力される。 $ENV{DBIX_CLASS_STORA

    YAA
    YAA 2009/07/24
  • [O] DBICのリレーションシップ

    « TaskPadを使いながら作業作業 | トップページ | 新宿 磯善 » DBICのリレーションシップ [Perl] やっぱり、DBIx::Class::Relationshipを読み直すことにした。 こういうのをちゃんと理解しておかないと足をすくわれるし。 ちょっとづつ書いたら、何日もかかった。ションボリ。 まずは前提となるデータ こんな感じで、Authorテーブルと、Bookテーブルがあるとする。 ID | Name | Age ------------------ 1 | Fred | 30 2 | Joe | 32 ID | Author | Name -------------------- 1 | 1 | Rulers of the universe 2 | 1 | Rulers of the galaxy リレーションシップなしの場合 もしもリ

    YAA
    YAA 2009/06/15
  • 2007/05/07 - memo - unknownplace.org

    書き忘れたけどさっきの update_schema.pl は ./script/myapp_update_schema.pl dbi:mysql:tablename username password 見たいな感じで DSN を渡す必要がある。めんどう。 ここら辺があれでまだヘルパーにはなってない。 mizzy.org : Re: DBICとDBIx::Class::Schema::Loader 僕のいろいろな勘違い 僕の中で流行ってる使い方があるのでかぶせて書いておいてみる。mizzy さんの二個目の例を自分ルール化させた感じ? 作業は一般的なCatalystアプリのディレクトリ構造上であるとして、そこに新しく schema というディレクトリを作成。 そんで、 schema/lib/Schema/{TableName}.pm に各テーブルのリレーション定義とかメソッドとかを自分で書く。

    YAA
    YAA 2009/06/09
  • Perl/DBIC - Nekokak's core dump

    VERSION-0.05000での記述。http://search.cpan.org/~mstrout/DBIx-Class/ ドキュメントも当初に比べれば増えてきたし、そっち見たほうがよかばい。 まあ以下は簡単なまとめで。一通り使えるくらいは書きたい。 このサイトはWikiなので途中途中に色々追加したり修正したりしますからご注意を DBIx::Class::Schemaを使ってみる これからDBICではSchemaメインらしい。 使うテーブル作成SQL create table user ( id int(10) NOT NULL auto_increment, name varchar(256) NOT NULL, PRIMARY KEY (id) ) ENGINE = InnoDB;

    YAA
    YAA 2009/06/03
  • DBIx::Class::Schema::Loaderの手動スキーマ生成、初心者向けチュートリアル - Yet Another Hackadelic

    と言う訳で自分なりに色々調べてみた。 テスト用データベース定義 CREATE TABLE `User` ( `user_id` bigint(20) NOT NULL auto_increment, `name` varchar(255) character set latin1 default NULL, `created_on` datetime default NULL, `updated_on` datetime default NULL, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `Book` ( `book_id` bigint(20) NOT NULL auto_increment, `name` varchar(255) character set latin1 de

    DBIx::Class::Schema::Loaderの手動スキーマ生成、初心者向けチュートリアル - Yet Another Hackadelic
    YAA
    YAA 2008/03/18
  • 1