1 package ExtraTest::Schema::Result::Album;
3 use base 'DBIx::Class::Core';
5 __PACKAGE__->table('album');
6 __PACKAGE__->add_columns(
8 data_type => 'integer',
9 is_auto_increment => 1,
12 data_type => 'varchar',
17 __PACKAGE__->set_primary_key('albumid');
19 __PACKAGE__->has_many(
20 photos => 'ExtraTest::Schema::Result::Photo'
25 package ExtraTest::Schema::Result::Photographer;
27 use base 'DBIx::Class::Core';
29 __PACKAGE__->table('photographer');
30 __PACKAGE__->add_columns(
32 data_type => 'integer',
33 is_auto_increment => 1,
36 data_type => 'varchar',
41 __PACKAGE__->set_primary_key('photographerid');
43 __PACKAGE__->has_many(
44 photos => 'ExtraTest::Schema::Result::Photo'
50 package ExtraTest::Schema::Result::Photo;
55 use base 'DBIx::Class::Core';
57 __PACKAGE__->load_components(qw/InflateColumn::FS/);
58 __PACKAGE__->table('photo');
60 __PACKAGE__->add_columns(
62 data_type => 'integer',
63 is_auto_increment => 1,
66 data_type => 'integer',
69 data_type => 'integer',
72 data_type => 'varchar',
75 fs_column_path =>'./t/var/files',
78 __PACKAGE__->set_primary_key('photo_id');
80 __PACKAGE__->belongs_to( photographer => 'ExtraTest::Schema::Result::Photographer' );
81 __PACKAGE__->belongs_to( album => 'ExtraTest::Schema::Result::Album' );
83 package ExtraTest::Schema;
88 use base 'DBIx::Class::Schema';
90 __PACKAGE__->register_class(
91 Album => 'ExtraTest::Schema::Result::Album');
92 __PACKAGE__->register_class(
93 Photographer => 'ExtraTest::Schema::Result::Photographer');
94 __PACKAGE__->register_class(
95 Photo => 'ExtraTest::Schema::Result::Photo');
103 my $sql = (my $schema = shift)
106 ($schema->storage->dbh->do($_) ||
107 die "Error on SQL: $_\n")
108 for split(/;\n/, $sql);
115 albumid INTEGER PRIMARY KEY NOT NULL,
116 name varchar(100) NOT NULL
118 CREATE TABLE photographer (
119 photographerid INTEGER PRIMARY KEY NOT NULL,
120 name varchar(100) NOT NULL
123 photo_id INTEGER PRIMARY KEY NOT NULL,
124 album INTEGER NOT NULL,
125 photographer INTEGER NOT NULL,
126 file varchar(255) NOT NULL