DBUpgrade2: single-dbh
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 2 Sep 2016 11:49:58 +0000 (13:49 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 2 Sep 2016 12:21:52 +0000 (14:21 +0200)
Betrifft das Surrogat-dbh-handling in db-upgrades.

Der alte Code versucht $::form->get_standard_dbh mit dem Upgrade Handle
zu überschreiben, damit Code der im Upgrade läuft das benutzen kann. Das
geht mit dem SL::DB->client handling nicht.

Angenehmer Nebeneffekt ist, dass man jetzt sofort bei Testläufen auf der
Konsole sieht wenn das passiert, weil das Handle nicht funktioniert und
damit abstürzt.

SL/DBUpgrade2.pm

index ede8501..5c8280b 100644 (file)
@@ -243,8 +243,6 @@ sub process_perl_script {
   $dbh->begin_work;
 
   # setup dbup_ export vars & run script
-  my $old_dbh       = SL::DB->client->dbh;
-  SL::DB->client->dbh($dbh);
   my %dbup_myconfig = map { ($_ => $::form->{$_}) } qw(dbname dbuser dbpasswd dbhost dbport dbconnect);
   my $result        = eval {
     SL::DBUpgrade2::Base::execute_script(
@@ -257,8 +255,6 @@ sub process_perl_script {
 
   my $error = $EVAL_ERROR;
 
-  SL::DB->client->dbh($old_dbh);
-
   $dbh->rollback if 1 != ($result // -1);
 
   return $error if $self->{return_on_error} && (1 != ($result // -1));