DBIx::Class vs mysql vs UTF-8

DBIx::Class vs mysql vs UTF-8

それ、0.7以降(多分)ならconnectionやconnect上書きしなくてもこうかけるよ。

__PACKAGE__->connection(
    'dbi:mysql:foo',
    'root',
    {
        on_connect_do => ['SET NAMES utf8'],
    },
);
by typester / at 2006-11-21T12:06:00 / perl · dbic / Comment

MySQLのダブルクオートとsqlt

MySQLのsqlにダブルクオートが含まれてるとsqltがこける。

なんだろう。シングルクオートに置換すると通る。

とはいえ、便利すなぁ。sqlt。

by typester / at 2006-10-16T13:02:00 / dbic · mysql · sqlt / Comment

D-5 出張版 - DBIx::Classページングのドツボ

おーそうだったんだ。あぶねー。

同じような使い方してたけど、たまたまページ指定は最後にしていた。

by typester / at 2006-09-19T18:15:00 / perl · dbic / Comment

DBIC+SQLiteでイテレータループ内でupdateが出来ない件

すっかり忘れててまたはまってしまった。

検索したら自分のメールが出てきてびびる罠。

The Dbix-class January 2006 Archive by thread

ここにもメモしてた

by typester / at 2006-09-01T16:35:00 / perl · dbic · sqlite / Comment

Schema::Loader::make_schema_at 便利

Schemaクラスの雛形つくるスクリプトを書こうと思って、sqltの出力ベースにしてやるかとか思ったらなんかcolinuxだとtestにこけたので、Schema::Loaderのdebug出力を基に作るかとか思ってSchema::Loaderのぞいてたら、なんかmake_schema_atとかいうのでやりたいことができた。

いつのまに。coolすぎるぜ。

すこし出力ファイルいじりたいからラッパスクリプト書くかな。

by typester / at 2006-08-04T16:35:00 / perl · dbic / Comment

DBIC が起動時の重いのは C3 のせい

らしい。さっきIRCでそのパッチが出てた。

後で見てみよう。

開発中アプリの再起動に時間かかって結構致命的なのよね。

by typester / at 2006-07-25T13:56:00 / perl · dbic / Comment

on_connect_do

で、下記の PRAGMA synchronous = off だとか、MySQL の SET NAMES utf8 みたいなのを DBIC でやるばあいは

$schema->storage->on_connect_do( ['SET NAMES utf8'] );

みたいにするわけだけど、これは今はschemaクラス自体には書いておけないのでめんどくさい。(0.699..のほうではできるようになっている)

Catalyst でつかうだけなら、今の DBIC でも、Model::DBIC::Schema の connect_infoon_connect_do を書いておける。

connect_info => [
    'dbi:SQLite:dbname=foo.db',
    { on_connect_do => [ 'PRAGMA synchronous = OFF', ], }
],

blblack++

by typester / at 2006-06-20T19:17:00 / perl · dbic / Comment

DBIC というか SQL::Abstract の小技

同僚が DBIC で、

select * from table where column1 > column2;

みたいのを実行したいけどどうやるかわからんとかいっていて、オレもわからなかったので IRC で聞いたらすぐ解決した。

$rs->search({ column1 => \'> column2' });

SQL::Abstract の機能。しらなかった。

これ他にもいろいろつかえるね。DBIC の機能というわけではないから CDBI::Sweet とかでもOKか。

by typester / at 2006-05-19T17:29:00 / perl · dbic / Comment

DBIx::Class::Schema

Schema ベースにすると重くない?

なんかアプリの起動に10秒くらいかかるよ。。

by typester / at 2006-04-20T16:44:00 / perl · dbic / Comment

さっきかいたの

PACKAGE->inflate_column( query => { inflate => sub { my $u = URI->new; $u->query(shift);

            my $ret = {};
            for my $k ( $u->query_param ) {
                my @v = $u->query_param($k);
                $ret->{$k} = @v > 1 ? [@v] : $v[0];
            }

            $ret;
        },
        deflate => sub {
            my $utf8off = sub {
                my $str = shift;
                utf8::encode($str) if utf8::is_utf8($str);
            };

            my $hash = shift;
            for ( keys %$hash ) {
                if ( ref $hash->{$_} eq 'ARRAY' ) {
                    $utf8off->($_) for @{ $hash->{$_} };
                }
                else {
                    $utf8off->( $hash->{$_} );
                }
            }

            my $u = URI->new;
            $u->query_param(%$hash);
            $u->query;
        },
    }
);

foo=bar&baz=blah みたいなクエリを保存するカラムに、ハッシュで保存してハッシュで取り出すというやつ。

短くかけるかと思って書き始めたら、URIの query_formquery_param にutf8フラグったの渡すとこけたり、foo=bar&foo=baz のように配列になるべきものがうまくハッシュにできなかったりとかしてこんなに長く。

by typester / at 2006-04-10T17:33:00 / perl · dbic / Comment

1 2 3 4

(Page 2 of 4)