Silence SQLite ->disconnect warnings
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / SQLite.pm
index a714510..68d3ac3 100644 (file)
@@ -33,7 +33,7 @@ sub backup
 #  my $dbfile = file($dbname);
   my ($vol, $dbdir, $file) = File::Spec->splitpath($dbname);
 #  my $file = $dbfile->basename();
-  $file = strftime("%y%m%d%h%M%s", localtime()) . $file; 
+  $file = strftime("%Y-%m-%d-%H_%M_%S", localtime()) . $file; 
   $file = "B$file" while(-f $file);
 
   mkdir($dir) unless -f $dir;
@@ -45,12 +45,18 @@ sub backup
   return $backupfile;
 }
 
-sub txn_begin
-{
-  my $self = shift;
-  return if(!$self->{transaction_depth});
+sub disconnect {
+
+  # As described in this node http://www.perlmonks.org/?node_id=666210
+  # there seems to be no sane way to ->disconnect a SQLite database with
+  # cached statement handles. As per mst we just zap the cache and 
+  # proceed as normal.
 
-  $self->next::method(@_);
+  my $self = shift;
+  if ($self->connected) {
+    $self->_dbh->{CachedKids} = {};
+    $self->next::method (@_);
+  }
 }
 
 
@@ -58,7 +64,7 @@ sub txn_begin
 
 =head1 NAME
 
-DBIx::Class::PK::Auto::SQLite - Automatic primary key class for SQLite
+DBIx::Class::Storage::DBI::SQLite - Automatic primary key class for SQLite
 
 =head1 SYNOPSIS