Schema::Loader converted to better inheritance model, no longer pollutes user schema...
[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
21   sub _db_classes {
22       return qw/DBIx::Class::PK::Auto::Foo/;
23           # You may want to return more, or less, than this.
24   }
25
26   sub _tables {
27       my $self = shift;
28       my $dbh = $self->schema->storage->dbh;
29       return $dbh->tables; # Your DBD may need something different
30   }
31
32   sub _table_info {
33       my ( $self, $table ) = @_;
34       ...
35       return ( \@cols, \@primary );
36   }
37
38   sub _load_relationships {
39       my $self = shift;
40       ...
41
42       # make a simple relationship, where $table($column)
43       #  references the PK of $f_table:
44       $self->_make_simple_rel($table, $f_table, $column);
45
46       # make a relationship with a complex condition-clause:
47       $self->_make_cond_rel($table, $f_table,
48           { foo => bar, baz => xaa } );
49
50       ...
51   }
52
53 =cut