X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FDBIx%2FClass.pm;h=073a45c4f2d25cc4f1eb1be0ba8fd8f3d7fb0e36;hb=9485509b5b6fa85268a7256a20907e1f698d6af6;hp=ca25aa21d8f48827ae82651a80bd369d1b3b14b2;hpb=a17640f13daeeb9f3568cbbd6b70d837dd1e3e65;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/SQL/Translator/Parser/DBIx/Class.pm b/lib/SQL/Translator/Parser/DBIx/Class.pm index ca25aa2..073a45c 100644 --- a/lib/SQL/Translator/Parser/DBIx/Class.pm +++ b/lib/SQL/Translator/Parser/DBIx/Class.pm @@ -269,6 +269,7 @@ sub parse { my $dependencies = { map { $_ => _resolve_deps ($_, \%tables) } (keys %tables) }; + for my $table (sort { keys %{$dependencies->{$a} || {} } <=> keys %{ $dependencies->{$b} || {} } @@ -297,9 +298,20 @@ EOW } my %views; - foreach my $moniker (sort keys %view_monikers) + + my @view_sources = + sort { + keys %{ $dependencies->{$a} || {} } + <=> + keys %{ $dependencies->{$b} || {} } + || + $a cmp $b + } + map { $dbicschema->source($_) } + keys %view_monikers; + + foreach my $source (@view_sources) { - my $source = $dbicschema->source($moniker); my $view_name = $source->name; # FIXME - this isn't the right way to do it, but sqlt does not