DBIx::Classで
0.07999_02 2007-01-25 20:11:00
- add support for binding BYTEA and similar parameters (w/Pg impl)
ということでPostgreSQLのBYTEA型が使えるようになったようなので試してみました。
1 package Schema;
2
3 use strict;
4 use warnings;
5
6 use base 'DBIx::Class::Schema';
7
8 __PACKAGE__->load_classes;
9 __PACKAGE__->storage_type('::DBI::Pg');
10
11 1;
1 package Schema::Test;
2
3 use strict;
4 use warnings;
5
6 use base 'DBIx::Class';
7
8 __PACKAGE__->load_components("Core");
9 __PACKAGE__->table("test");
10 __PACKAGE__->add_columns(
11 "id",
12 {
13 data_type => "integer",
14 default_value => "nextval('test_id_seq'::regclass)",
15 is_nullable => 0,
16 size => 4,
17 },
18 "data",
19 {
20 data_type => "bytea",
21 default_value => undef,
22 is_nullable => 1,
23 size => undef,
24 },
25 );
26 __PACKAGE__->set_primary_key("id");
ポイントは、Schema classで__PACKAGE__->storage_type('::DBI::Pg');することと、Table classのadd_columnsでdata_type => "bytea"すること。あとは何も気にする事無くバイナリデータを取り扱えました。Catalyst::Model::DBICでも大丈夫。