X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FUser.pm;h=c35ff0e9122b5715f7f5db4c00b6ca0f91d70b1f;hb=a5f55e6fe23ee776e90567d3e5ee6cdf116c3f9c;hp=f989e86f5b7bb10e16b201efe4e67f56784b559b;hpb=df9b211eecc3fdcc8ca143fcdff4d0a002e150e3;p=kivitendo-erp.git
diff --git a/SL/User.pm b/SL/User.pm
index f989e86f5..c35ff0e91 100644
--- a/SL/User.pm
+++ b/SL/User.pm
@@ -162,7 +162,7 @@ sub login {
$rc = 0;
- if ($form->{dbversion} ne $dbversion) {
+ if (&update_available($dbversion)) {
# update the tables
open FH, ">$userspath/nologin" or die "
@@ -432,9 +432,11 @@ sub process_query {
$sth = $dbh->prepare($query);
if (!$sth->execute()) {
+ my $errstr = $dbh->errstr;
$sth->finish();
$dbh->rollback();
$form->dberror("The database update/creation did not succeed. The file ${filename} containing the following query failed:
${query}
" .
+ "The error message was: ${errstr}
" .
"All changes in that file have been reverted.");
}
$sth->finish();
@@ -652,6 +654,16 @@ sub cmp_script_version {
}
## /LINET
+sub update_available {
+ ($cur_version) = @_;
+ opendir SQLDIR, "sql/." or &error("", "$!");
+ my @upgradescripts =
+ grep(/$form->{dbdriver}-upgrade-$cur_version.*\.sql/, readdir(SQLDIR));
+ closedir SQLDIR;
+
+ return ($#upgradescripts > -1);
+}
+
sub dbupdate {
$main::lxdebug->enter_sub();