sub sql {
my($self, $dbh) = ( shift, _dbh(@_) );
- map { $self->table($_)->sql_create_table($dbh); } $self->tables;
+ (
+ ( map { $self->table($_)->sql_create_table($dbh); } $self->tables ),
+ ( map { $self->table($_)->sql_add_constraints($dbh); } $self->tables ),
+ );
}
=item sql_update_schema [ OPTIONS_HASHREF, ] PROTOTYPE_SCHEMA [ DATABASE_HANDLE | DATA_SOURCE [ USERNAME PASSWORD [ ATTR ] ] ]
my($self, $opt, $new, $dbh) = ( shift, _parse_opt(\@_), shift, _dbh(@_) );
my @r = ();
+ my @later = ();
foreach my $table ( $new->tables ) {
warn "$table exists\n" if $DEBUG > 1;
- push @r, $self->table($table)->sql_alter_table( $new->table($table),
- $dbh,
- $opt
- );
+ push @r,
+ $self->table($table)->sql_alter_table( $new->table($table),
+ $dbh, $opt );
+ push @later,
+ $self->table($table)->sql_alter_constraints( $new->table($table),
+ $dbh, $opt );
} else {
warn "table $table does not exist.\n" if $DEBUG;
- push @r,
- $new->table($table)->sql_create_table( $dbh );
+ push @r, $new->table($table)->sql_create_table( $dbh );
+ push @later, $new->table($table)->sql_add_constraints( $dbh );
}
}
+ push @r, @later;
+
warn join("\n", @r). "\n"
if $DEBUG > 1;