$::form nach Perl-Upgrade-Script-Ausführung resetten
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 May 2013 10:05:18 +0000 (12:05 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 May 2013 10:05:18 +0000 (12:05 +0200)
Siehe 87eebe6 für Begründung.

SL/DBUpgrade2.pm

index d98627c..c9bf7ab 100644 (file)
@@ -242,6 +242,8 @@ sub process_perl_script {
 
   my ($self, $dbh, $filename, $version_or_control, $db_charset) = @_;
 
+  my %form_values = map { $_ => $::form->{$_} } qw(dbconnect dbdefault dbdriver dbhost dbmbkiviunstable dbname dboptions dbpasswd dbport dbupdate dbuser login template_object version);
+
   $dbh->begin_work;
 
   # setup dbup_ export vars & run script
@@ -272,6 +274,13 @@ sub process_perl_script {
   }
   $dbh->commit();
 
+  # Clear $::form of values that may have been set so that following
+  # Perl upgrade scripts won't have to work with old data (think of
+  # the usual 'continued' mechanism that's used for determining
+  # whether or not the upgrade form must be displayed).
+  delete @{ $::form }{ keys %{ $::form } };
+  $::form->{$_} = $form_values{$_} for keys %form_values;
+
   $::lxdebug->leave_sub();
 }