X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FYAML.pm;h=e707f3ad411647938c45738fd72f12f6321fbbcd;hb=821a0fde221f5accf93e3f65efa77b5a6733cb5e;hp=857eac8c04a87c9047aff0b8b9e5e170a67c570d;hpb=900758666f4b53e9a670d84260d28b16f834f69d;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Parser/YAML.pm b/lib/SQL/Translator/Parser/YAML.pm index 857eac8..e707f3a 100644 --- a/lib/SQL/Translator/Parser/YAML.pm +++ b/lib/SQL/Translator/Parser/YAML.pm @@ -1,7 +1,7 @@ package SQL::Translator::Parser::YAML; # ------------------------------------------------------------------- -# $Id: YAML.pm,v 1.5 2004-02-09 22:23:40 kycl4rk Exp $ +# $Id$ # ------------------------------------------------------------------- # Copyright (C) 2002-4 SQLFairy Authors # @@ -22,7 +22,7 @@ package SQL::Translator::Parser::YAML; use strict; use vars qw($VERSION); -$VERSION = sprintf "%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/; use SQL::Translator::Schema; use SQL::Translator::Utils qw(header_comment); @@ -34,7 +34,7 @@ sub parse { $data = Load($data); $data = $data->{'schema'}; - warn Dumper( $data ) if $translator->debug; + warn "YAML data:",Dumper( $data ) if $translator->debug; my $schema = $translator->schema; @@ -44,13 +44,16 @@ sub parse { my @tables = map { $data->{'tables'}{ $_->[1] } } sort { $a->[0] <=> $b->[0] } - map { [ $data->{'tables'}{ $_ }{'order'}, $_ ] } + map { [ $data->{'tables'}{ $_ }{'order'} || 0, $_ ] } keys %{ $data->{'tables'} } ; for my $tdata ( @tables ) { + my $table = $schema->add_table( - name => $tdata->{'name'}, + map { + $tdata->{$_} ? ($_ => $tdata->{$_}) : () + } (qw/name extra options/) ) or die $schema->error; my @fields = @@ -117,6 +120,18 @@ sub parse { $schema->add_procedure( %$tdata ) or die $schema->error; } + if ( my $tr_data = $data->{'translator'} ) { + $translator->add_drop_table( $tr_data->{'add_drop_table'} ); + $translator->filename( $tr_data->{'filename'} ); + $translator->no_comments( $tr_data->{'no_comments'} ); + $translator->parser_args( $tr_data->{'parser_args'} ); + $translator->producer_args( $tr_data->{'producer_args'} ); + $translator->parser_type( $tr_data->{'parser_type'} ); + $translator->producer_type( $tr_data->{'producer_type'} ); + $translator->show_warnings( $tr_data->{'show_warnings'} ); + $translator->trace( $tr_data->{'trace'} ); + } + return 1; }