add foreign_key_constraints
Arthur Axel 'fREW' Schmidt [Fri, 11 Mar 2011 03:53:09 +0000 (21:53 -0600)]
lib/SQL/Translator/Generator/DDL/SQLServer.pm
lib/SQL/Translator/Producer/SQLServer.pm

index 5852998..649fc7e 100644 (file)
@@ -210,5 +210,13 @@ sub drop_tables {
    return '';
 }
 
+sub foreign_key_constraints {
+   my ($self, $schema) = @_;
+   ( map $self->foreign_key_constraint($_),
+     grep { $_->type eq FOREIGN_KEY }
+     map $_->get_constraints,
+     $schema->get_tables )
+}
+
 1;
 
index 1812418..1a952a2 100644 (file)
@@ -17,19 +17,12 @@ sub produce {
       add_drop_tables => $translator->add_drop_table,
     );
 
-    my $no_comments    = $translator->no_comments;
-    my $add_drop_table = $translator->add_drop_table;
     my $schema         = $translator->schema;
 
     my $output = $future->header_comments
       . $future->drop_tables($schema);
 
-    my @foreign_constraints = ();
-
     for my $table ( grep { $_->name } $schema->get_tables ) {
-        push @foreign_constraints, map $future->foreign_key_constraint($_),
-           grep { $_->type eq FOREIGN_KEY } $table->get_constraints;
-
         $output .= join( "\n\n",
             $future->table_comments($table),
             # index defs
@@ -44,12 +37,9 @@ sub produce {
         );
     }
 
-# Add FK constraints
+    my @foreign_constraints = $future->foreign_key_constraints($schema);
     $output .= join ("\n", '', @foreign_constraints) if @foreign_constraints;
 
-# create view/procedure are NOT prepended to the input $sql, needs
-# to be filled in with the proper syntax
-
     return $output;
 }