use vars qw($DEBUG $VERSION @EXPORT_OK);
$VERSION = '1.10';
$DEBUG = 0 unless defined $DEBUG;
-use Data::Dumper;
+
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);
@EXPORT_OK = qw(parse);
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->deploy_depends_on->{$b->source_name} ? 1 : 0)
- #<=>
- #(exists $b->deploy_depends_on->{$a->source_name} ? 1 : 0)
- #}
- #map { $dbicschema->source($_) } (sort keys %view_monikers);
-
- #my @view_sources =
- #grep { $_->can('view_definition') } # make sure it's a view
- #map { $dbicschema->source($_) } # have to get a source
- #map { $tables{$_}{source}{source_name} } # have to get a sourcename
- #sort {
- #keys %{ $dependencies->{$a} || {} }
- #<=>
- #keys %{ $dependencies->{$b} || {} }
- #||
- #$a cmp $b
- #}
- #keys %$dependencies;
-
- my @view_sources =
- sort {
- keys %{ $dependencies->{$a} || {} }
- <=>
- keys %{ $dependencies->{$b} || {} }
- ||
- $a cmp $b
- }
- map { $dbicschema->source($_) } (sort keys %view_monikers);
- print STDERR Dumper @view_sources;
- print STDERR Dumper "Dependencies: ", $dependencies;
+ my @view_sources =
+ sort {
+ keys %{ $a->deploy_depends_on || {} }
+ <=>
+ keys %{ $b->deploy_depends_on || {} }
+ ||
+ $a->source_name cmp $b->source_name
+ }
+ map { $dbicschema->source($_) }
+ keys %view_monikers;
foreach my $source (@view_sources)
{
L<SQL::Translator>, L<DBIx::Class::Schema>
-=head1 AUTHORS
+=head1 AUTHOR
+
+Jess Robinson
+
+=head2 CONTRIBUTORS
-See L<DBIx::Class/CONTRIBUTORS>.
+Matt Trout
+Ash Berlin
+Amiri Barksdale
=head1 LICENSE