$rc = 0;
- if ($form->{dbversion} ne $dbversion) {
+ if (&update_available($dbversion)) {
# update the tables
open FH, ">$userspath/nologin" or die "
$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:<br>${query}<br>" .
+ "The error message was: ${errstr}<br>" .
"All changes in that file have been reverted.");
}
$sth->finish();
}
## /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();