From: Luke Saunders Date: Tue, 4 Mar 2008 23:14:23 +0000 (+0000) Subject: improved docs and added env var to skip version checks on connect X-Git-Tag: v0.08240~545^2~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=commitdiff_plain;h=ecea7937af447727114a232448d79e33f1ad562d improved docs and added env var to skip version checks on connect --- diff --git a/lib/DBIx/Class/Manual/Cookbook.pod b/lib/DBIx/Class/Manual/Cookbook.pod index efbc2e8..8fdd2d6 100644 --- a/lib/DBIx/Class/Manual/Cookbook.pod +++ b/lib/DBIx/Class/Manual/Cookbook.pod @@ -1123,7 +1123,7 @@ B Add the L schema component to your Schema class. This will add a new table to your database called -C which will keep track of which version is installed +C which will keep track of which version is installed and warn if the user trys to run a newer schema version than the database thinks it has. diff --git a/lib/DBIx/Class/Schema/Versioned.pm b/lib/DBIx/Class/Schema/Versioned.pm index 2744b8a..9bcc08e 100644 --- a/lib/DBIx/Class/Schema/Versioned.pm +++ b/lib/DBIx/Class/Schema/Versioned.pm @@ -157,7 +157,7 @@ sub get_db_version 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; @@ -397,6 +397,18 @@ sub run_upgrade 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(@_); @@ -420,7 +432,10 @@ sub _on_connect $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)