Merge branch 'cngarrison-test-fix'
[dbsrgits/DBIx-Class-Fixtures.git] / t / lib / ExtraTest / Schema.pm
CommitLineData
3d4debec 1package ExtraTest::Schema::Result::Album;
2
3use base 'DBIx::Class::Core';
4
5__PACKAGE__->table('album');
6__PACKAGE__->add_columns(
7 'albumid' => {
8 data_type => 'integer',
9 is_auto_increment => 1,
10 },
11 'name' => {
12 data_type => 'varchar',
13 size => 100,
14 is_nullable => 1,
15 },
16);
17__PACKAGE__->set_primary_key('albumid');
18
19__PACKAGE__->has_many(
20 photos => 'ExtraTest::Schema::Result::Photo'
21);
22
231;
24
25package ExtraTest::Schema::Result::Photographer;
26
27use base 'DBIx::Class::Core';
28
29__PACKAGE__->table('photographer');
30__PACKAGE__->add_columns(
31 'photographerid' => {
32 data_type => 'integer',
33 is_auto_increment => 1,
34 },
35 'name' => {
36 data_type => 'varchar',
37 size => 100,
38 is_nullable => 1,
39 },
40);
41__PACKAGE__->set_primary_key('photographerid');
42
43__PACKAGE__->has_many(
44 photos => 'ExtraTest::Schema::Result::Photo'
45);
46
471;
48
49
6d01d9c1 50package ExtraTest::Schema::Result::Photo;
51
52use strict;
53use warnings;
54
55use base 'DBIx::Class::Core';
56
57__PACKAGE__->load_components(qw/InflateColumn::FS/);
58__PACKAGE__->table('photo');
59
60__PACKAGE__->add_columns(
61 photo_id => {
62 data_type => 'integer',
63 is_auto_increment => 1,
64 },
3d4debec 65 album => {
66 data_type => 'integer',
67 },
6d01d9c1 68 photographer => {
3d4debec 69 data_type => 'integer',
6d01d9c1 70 },
71 file => {
72 data_type => 'varchar',
73 size => 255,
74 is_fs_column => 1,
75 fs_column_path =>'./t/var/files',
76 });
77
78__PACKAGE__->set_primary_key('photo_id');
79
3d4debec 80__PACKAGE__->belongs_to( photographer => 'ExtraTest::Schema::Result::Photographer' );
81__PACKAGE__->belongs_to( album => 'ExtraTest::Schema::Result::Album' );
82
6d01d9c1 83package ExtraTest::Schema;
84
85use strict;
86use warnings;
87
88use base 'DBIx::Class::Schema';
89
90__PACKAGE__->register_class(
3d4debec 91 Album => 'ExtraTest::Schema::Result::Album');
92__PACKAGE__->register_class(
93 Photographer => 'ExtraTest::Schema::Result::Photographer');
94__PACKAGE__->register_class(
6d01d9c1 95 Photo => 'ExtraTest::Schema::Result::Photo');
96
97sub load_sql {
98 local $/ = undef;
99 my $sql = <DATA>;
100}
101
102sub init_schema {
103 my $sql = (my $schema = shift)
104 ->load_sql;
105
106 ($schema->storage->dbh->do($_) ||
107 die "Error on SQL: $_\n")
108 for split(/;\n/, $sql);
109}
110
1111;
112
113__DATA__
3d4debec 114CREATE TABLE album (
115 albumid INTEGER PRIMARY KEY NOT NULL,
116 name varchar(100) NOT NULL
117);
118CREATE TABLE photographer (
119 photographerid INTEGER PRIMARY KEY NOT NULL,
120 name varchar(100) NOT NULL
121);
6d01d9c1 122CREATE TABLE photo (
123 photo_id INTEGER PRIMARY KEY NOT NULL,
3d4debec 124 album INTEGER NOT NULL,
125 photographer INTEGER NOT NULL,
6d01d9c1 126 file varchar(255) NOT NULL
127)
128