0036db4811085b77f69fefd5acc84d1e2e920835
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / Writing.pm
1 package DBIx::Class::Schema::Loader::Writing;
2
3 # Empty. POD only.
4
5 1;
6
7 =head1 NAME                                                                     
8                                                                                 
9 DBIx::Class::Schema::Loader::Writing - Loader subclass writing guide
10
11 =head1 SYNOPSIS
12
13   package DBIx::Class::Schema::Loader::Foo;
14
15   # THIS IS JUST A TEMPLATE TO GET YOU STARTED.
16
17   use strict;
18   use warnings;
19   use base 'DBIx::Class::Schema::Loader::Generic';
20   use Class::C3;
21
22   sub _db_classes {
23       return qw/PK::Auto::Foo/;
24           # You may want to return more, or less, than this.
25   }
26
27   sub _tables {
28       my $self = shift;
29       my $dbh = $self->schema->storage->dbh;
30       return $dbh->tables; # Your DBD may need something different
31   }
32
33   sub _table_info {
34       my ( $self, $table ) = @_;
35       ...
36       return ( \@cols, \@primary );
37   }
38
39   sub _load_relationships {
40       my $self = shift;
41       ...
42
43       # make a simple relationship, where $table($column)
44       #  references the PK of $f_table:
45       $self->_make_simple_rel($table, $f_table, $column);
46
47       # make a relationship with a complex condition-clause:
48       $self->_make_cond_rel($table, $f_table,
49           { foo => bar, baz => xaa } );
50
51       ...
52   }
53
54   1;
55
56 =cut