X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FVersioned.pm;h=e6af6e053bf653ecd0057afdb3cd9917eb70c47e;hb=d88ecca6486a2b1c4b6e2f0440165b186aab39bc;hp=0874167b16d7e570c2eb02ed94e1250ed4d42913;hpb=d4daee7b54e38e4b3d3d0a77759bddc1a4ede6e5;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Schema/Versioned.pm b/lib/DBIx/Class/Schema/Versioned.pm index 0874167..e6af6e0 100644 --- a/lib/DBIx/Class/Schema/Versioned.pm +++ b/lib/DBIx/Class/Schema/Versioned.pm @@ -1,10 +1,9 @@ package # Hide from PAUSE DBIx::Class::Version::Table; -use base 'DBIx::Class'; +use base 'DBIx::Class::Core'; use strict; use warnings; -__PACKAGE__->load_components(qw/ Core/); __PACKAGE__->table('dbix_class_schema_versions'); __PACKAGE__->add_columns @@ -31,8 +30,7 @@ __PACKAGE__->set_primary_key('version'); package # Hide from PAUSE DBIx::Class::Version::TableCompat; -use base 'DBIx::Class'; -__PACKAGE__->load_components(qw/ Core/); +use base 'DBIx::Class::Core'; __PACKAGE__->table('SchemaVersions'); __PACKAGE__->add_columns @@ -180,7 +178,7 @@ package DBIx::Class::Schema::Versioned; use strict; use warnings; -use base 'DBIx::Class'; +use base 'DBIx::Class::Schema'; use Carp::Clan qw/^DBIx::Class/; use POSIX 'strftime'; @@ -472,9 +470,13 @@ sub _on_connect my ($self, $args) = @_; $args = {} unless $args; + $self->{vschema} = DBIx::Class::Version->connect(@{$self->storage->connect_info()}); my $vtable = $self->{vschema}->resultset('Table'); + # useful when connecting from scripts etc + return if ($args->{ignore_version} || ($ENV{DBIC_NO_VERSION_CHECK} && !exists $args->{ignore_version})); + # check for legacy versions table and move to new if exists my $vschema_compat = DBIx::Class::VersionCompat->connect(@{$self->storage->connect_info()}); unless ($self->_source_exists($vtable)) { @@ -486,8 +488,6 @@ sub _on_connect } } - # useful when connecting from scripts etc - return if ($args->{ignore_version} || ($ENV{DBIC_NO_VERSION_CHECK} && !exists $args->{ignore_version})); my $pversion = $self->get_db_version(); if($pversion eq $self->schema_version) @@ -520,13 +520,11 @@ sub _create_db_to_schema_diff { return; } - eval 'require SQL::Translator "0.09003"'; - if ($@) { - $self->throw_exception("SQL::Translator 0.09003 required"); - } + $self->throw_exception($self->storage->_sqlt_version_error) + if (not $self->storage->_sqlt_version_ok); - my $db_tr = SQL::Translator->new({ - add_drop_table => 1, + my $db_tr = SQL::Translator->new({ + add_drop_table => 1, parser => 'DBI', parser_args => { dbh => $self->storage->dbh } });