X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/347f2cff58f8d798bb0fe52495fb09b4e08db036..8f7283f501b3ddc2809d073b5d0399d20ed5af06:/SL/DBUpgrade2.pm diff --git a/SL/DBUpgrade2.pm b/SL/DBUpgrade2.pm index 86ae9fdee..c9bf7aba5 100644 --- a/SL/DBUpgrade2.pm +++ b/SL/DBUpgrade2.pm @@ -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 @@ -250,13 +252,11 @@ sub process_perl_script { file_name => $filename, tag => $version_or_control->{tag}, dbh => $dbh, - locale => $::locale, myconfig => \%dbup_myconfig, ); - if (1 != $result) { + if (1 != ($result // 1)) { $dbh->rollback(); - $dbh->disconnect(); } if (!defined($result)) { @@ -274,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(); }