タグ

dbicに関するmogwaingのブックマーク (7)

  • SQL::Abstract かしこす - daily dayflower

    以前「DBICで当に困ったら SCALAR REFERNCE を使え - daily dayflower」にて, DBIC で WHERE field1 IS NOT NULL な検索をしようと思って, …… $resultset->search({ field1 => \'IS NOT NULL' }); とか書いていたんですが, $resultset->search({ field1 => { '!=', undef } });でよかったのでした。 $resultset->search({ field1 => undef });が WHERE field1 IS NULLというのは知っていたんですが,'!=' をつけるときちんと「IS NOT NULL」に変換してくれるとは(SQL::Abstract の 714 行目あたりのロジックとしてちゃんとありました)。これでスカラーリファレ

    SQL::Abstract かしこす - daily dayflower
    mogwaing
    mogwaing 2007/08/22
    is null, is not null 等のやり方
  • DBICで本当に困ったら SCALAR REFERNCE を使え - daily dayflower

    追記 2006/12/06 下記で IS NOT NULL を実現するのにスカラーリファレンスを使用していますが,IS NULL / IS NOT NULL を出すためには必ずしもスカラーリファレンスを利用する必要はありません。ということで訂正を入れようと思ったんですがちょっと長いので「フォローアップ記事」を書きました。 題 typester さんに以前教えて頂いたんですが,似たようなことに今日遭遇したのでメモ。 WHERE field1 IS NOT NULL な検索をしようと思って, $resultset->search({ field1 => 'IS NOT NULL' });と書くと,内部的には SELECT ... WHERE field1 = ?と展開されて,プレースホルダに「IS NOT NULL」が渡されるので,バツ。 $resultset->search({ field

    DBICで本当に困ったら SCALAR REFERNCE を使え - daily dayflower
  • 10分(?)で出来るDBIx::Class の導入|Perlプログラムメモ|プログラムメモ

    ■1. DBIx::Classのインストール 例によってCPANコマンドでインストールします。 unixのシェルから perl -MCPAN -e shell cpan > install DBIx::Class cpan > install DBIx::Class::Schema::Loader でOK。 (何か入力が促されたらそのままEnterを押せばいいです) ■ 2.テーブルスキーマの自動生成 unixのシェルでプログラムを作成するディレクトリに移ってから perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","pa

  • [O] DBICのリレーションが良くわからないのでメモ - 1対1

    « 横浜西口 スターバックス | トップページ | DBICのリレーションが良くわからないのでメモ - 1対多 » DBICのリレーションが良くわからないのでメモ - 1対1 [Perl] [2007-01-08]:追記 [2007-01-07-1]で、DBICのリレーションシップについてのエントリを 書きました。以下は非常にいい加減なので[2007-01-07-1]をどうぞ。 よく分からないというか、has_oneとmight_haveとbelong_toの明確な違い が分からなくて、どうすれば一生間違いなく理解できるかなと、 これらを見て、理解することから始めた。 101号室より愛をこめて: [DBIx::Class][DBIC][perl] DBIx::Classのリレーション Perl/DBIC - Nekokak's core dump DBIx::Class::

  • 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 に各テーブルのリレーション定義とかメソッドとかを自分で書く。

  • [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 リレーションシップなしの場合 もしもリ

  • DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記

    既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]' やりかた。 まず、クラスを作りたいディレクトリ付近に移動 さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定 make_schema_at の第一引数に生成する Schema のパッケージ名を指定 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合

    DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記
    mogwaing
    mogwaing 2007/04/19
    [DBIx::Class] schema loader
  • 1