migrate table to Generator::Role::DDL
Arthur Axel 'fREW' Schmidt [Thu, 10 Mar 2011 03:49:33 +0000 (21:49 -0600)]
lib/SQL/Translator/Generator/DDL/SQLServer.pm
lib/SQL/Translator/Producer/SQLServer.pm

index 15bab3a..18b399f 100644 (file)
@@ -2,6 +2,7 @@ package SQL::Translator::Generator::DDL::SQLServer;
 
 use Moo;
 use SQL::Translator::Generator::Utils;
+use SQL::Translator::Schema::Constants;
 
 with 'SQL::Translator::Generator::Role::DDL';
 
@@ -141,5 +142,28 @@ sub enum_constraint {
   )
 }
 
+sub table {
+   my ($self, $table) = @_;
+   'CREATE TABLE ' . $self->quote($table->name) . " (\n".
+     join( ",\n",
+        map { "  $_" }
+        # field defs
+        ( map $self->field($_), $table->get_fields ),
+        # constraint defs
+        (map $self->enum_constraint($_->name, { $_->extra }->{list} || []),
+           grep { 'enum' eq lc $_->data_type } $table->get_fields),
+
+        (map $self->primary_key_constraint($_),
+           grep { $_->type eq PRIMARY_KEY } $table->get_constraints),
+
+        (map $self->unique_constraint_single($_),
+           grep {
+             $_->type eq UNIQUE &&
+             !grep { $_->is_nullable } $_->fields
+           } $table->get_constraints),
+     ) .
+     "\n);",
+}
+
 1;
 
index ded928d..4dbfee0 100644 (file)
@@ -135,26 +135,8 @@ sub produce {
 
         $output .= join( "\n\n",
             @comments,
-            qq[CREATE TABLE $table_name_ur (\n].
-              join( ",\n",
-                  map { "  $_" }
-                  # field defs
-                  ( map $future->field($_), $table->get_fields ),
-                  # constraint defs
-                  (map $future->enum_constraint($_->name, { $_->extra }->{list} || []),
-                     grep { 'enum' eq lc $_->data_type } $table->get_fields),
-
-                  (map $future->primary_key_constraint($_),
-                     grep { $_->type eq PRIMARY_KEY } $table->get_constraints),
-
-                  (map $future->unique_constraint_single($_),
-                     grep {
-                       $_->type eq UNIQUE &&
-                       !grep { $_->is_nullable } $_->fields
-                     } $table->get_constraints),
-              ).
-              "\n);",
             # index defs
+            $future->table($table),
             (map $future->unique_constraint_multiple($_),
                grep {
                   $_->type eq UNIQUE &&