primary key fix for YAML
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Parser / DDL / YAML.pm
index a02143e..74b28cc 100644 (file)
@@ -30,12 +30,14 @@ role SQL::Translator::Parser::DDL::YAML {
             keys %{ $data->{'tables'} };
     
         for my $tdata ( @tables ) {
-            my $table = Table->new({ map { $tdata->{$_} ? ($_ => $tdata->{$_}) : () } qw/name extra options/ });    
+            my $table = Table->new({ name => $tdata->{name}, schema => $schema });
+            $table->extra($tdata->{extra}) if $tdata->{extra};
+            $table->options($tdata->{options}) if $tdata->{options};
             $schema->add_table($table);
-    
+
             my @fields = 
                 map   { $tdata->{'fields'}{ $_->[1] } }
-                map   { [ $tdata->{'fields'}{ $_ }{'order'}, $_ ] }
+                map   { [ $tdata->{'fields'}{ $_ }{'order'} || 0, $_ ] }
                 keys %{ $tdata->{'fields'} };
     
             for my $fdata ( @fields ) {
@@ -44,7 +46,7 @@ role SQL::Translator::Parser::DDL::YAML {
 
                 my $column = Column->new($fdata);
                 $table->add_column($column);
-                $table->primary_key($column->name) if $fdata->{is_primary_key};
+                $column->is_primary_key(1) if $fdata->{is_primary_key};
             }
     
             for my $idata ( @{ $tdata->{'indices'} || [] } ) { 
@@ -119,6 +121,6 @@ role SQL::Translator::Parser::DDL::YAML {
             $translator->trace( $tr_data->{'trace'} );
         }
     
-        return $schema;
+        return 1;
     }
 }