use Exporter;
use SQL::Translator::Utils qw(debug normalize_name);
-use Carp::Clan qw/^SQL::Translator|^DBIx::Class/;
+use Carp::Clan qw/^SQL::Translator|^DBIx::Class|^Try::Tiny/;
use Scalar::Util ();
+use Try::Tiny;
use base qw(Exporter);
croak 'No DBIx::Class::Schema' unless ($dbicschema);
if (!ref $dbicschema) {
- eval "use $dbicschema;";
- croak "Can't load $dbicschema ($@)" if($@);
+ try {
+ eval "require $dbicschema;"
+ }
+ catch {
+ croak "Can't load $dbicschema ($_)";
+ }
}
my $schema = $tr->schema;
my $dependencies = {
map { $_ => _resolve_deps ($_, \%tables) } (keys %tables)
};
+
for my $table (sort
{
keys %{$dependencies->{$a} || {} } <=> keys %{ $dependencies->{$b} || {} }
}
my %views;
+
my @view_sources =
- sort {
- (exists $a->depends_on->{$b->source_name} ? 1 : 0)
+ sort {
+ keys %{ $dependencies->{$a} || {} }
<=>
- (exists $b->depends_on->{$a->source_name} ? 1 : 0)
- }
- map { $dbicschema->source($_) } (sort keys %view_monikers);
+ keys %{ $dependencies->{$b} || {} }
+ ||
+ $a cmp $b
+ }
+ map { $dbicschema->source($_) }
+ keys %view_monikers;
foreach my $source (@view_sources)
{