DBIx-MyDatabaseMunger
view release on metacpan or search on metacpan
lib/DBIx/MyDatabaseMunger.pm view on Meta::CPAN
@primary_key = split( '`,`', $1 );
} elsif( $line =~ m/^\s*((UNIQUE )?KEY `([^`]+)`.*)/ ) {
my($key, $def) = ($3, $1);
push @keys, $key;
$key_definition{ $key } = $def;
} elsif( $line =~ m/^\s*
CONSTRAINT\s+`(.*)`\s+
FOREIGN\s+KEY\s+\(`(.*)`\)\s+
REFERENCES\s+`(.*)`\s+\(`(.*)`\)\s+(.*)
/x ) {
my($name, $cols, $reftable, $refcols, $cascade_opt) =
($1, $2, $3, $4, $5);
my @cols = split '`,`', $cols;
my @refcols = split '`,`', $refcols;
push @constraints, $name;
$constraint_definition{ $name } = {
name => $name,
columns => \@cols,
reference_table => $reftable,
reference_columns => \@refcols,
cascade_opt => $cascade_opt,
};
} else {
warn "Don't understand line in CREATE TABLE:\n$line";
}
}
return {
name => $name,
comment => $comment,
engine => $engine,
lib/DBIx/MyDatabaseMunger.pm view on Meta::CPAN
sub constraint_sql : method
{
my $self = shift;
my($constraint) = @_;
return "CONSTRAINT `$constraint->{name}` FOREIGN KEY (`"
. join('`,`', @{$constraint->{columns}})
. "`) REFERENCES `$constraint->{reference_table}` (`"
. join('`,`', @{$constraint->{reference_columns}})
. "`)" . (
$constraint->{cascade_opt} ? " $constraint->{cascade_opt}" : ''
);
}
=item $o->queue_add_table_constraint ( $table, $constraint )
=cut
sub queue_add_table_constraint : method
{
my $self = shift;
( run in 0.260 second using v1.01-cache-2.11-cpan-cba739cd03b )