-package DBIx::Class::Version::Table;
+package # Hide from PAUSE
+ DBIx::Class::Version::Table;
use base 'DBIx::Class';
use strict;
use warnings;
);
__PACKAGE__->set_primary_key('version');
-package DBIx::Class::Version::TableCompat;
+package # Hide from PAUSE
+ DBIx::Class::Version::TableCompat;
use base 'DBIx::Class';
__PACKAGE__->load_components(qw/ Core/);
__PACKAGE__->table('SchemaVersions');
);
__PACKAGE__->set_primary_key('Version');
-package DBIx::Class::Version;
+package # Hide from PAUSE
+ DBIx::Class::Version;
use base 'DBIx::Class::Schema';
use strict;
use warnings;
__PACKAGE__->register_class('Table', 'DBIx::Class::Version::Table');
-package DBIx::Class::VersionCompat;
+package # Hide from PAUSE
+ DBIx::Class::VersionCompat;
use base 'DBIx::Class::Schema';
use strict;
use warnings;
my ($self, $rs) = @_;
my $vtable = $self->{vschema}->resultset('Table');
- my $version;
+ my $version = 0;
eval {
my $stamp = $vtable->get_column('installed')->max;
$version = $vtable->search({ installed => $stamp })->first->version;
return 1;
}
+=head2 connection
+
+Overloaded method. This checks the DBIC schema version against the DB version and
+warns if they are not the same or if the DB is unversioned. It also provides
+compatibility between the old versions table (SchemaVersions) and the new one
+(dbix_class_schema_versions).
+
+To avoid the checks on connect, set the env var DBIC_NO_VERSION_CHECK. This can be
+useful for scripts.
+
+=cut
+
sub connection {
my $self = shift;
$self->next::method(@_);
$self->storage->dbh->do("DROP TABLE " . $vtable_compat->result_source->from);
}
}
-
+
+ # useful when connecting from scripts etc
+ return if ($ENV{DBIC_NO_VERSION_CHECK});
+
my $pversion = $self->get_db_version();
if($pversion eq $self->schema_version)