summaryrefslogtreecommitdiffstats
path: root/config-db/OpenSLX/ConfigDB.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-04-30 23:30:09 +0200
committerOliver Tappe2007-04-30 23:30:09 +0200
commit525a788603387bcc8bf8b5d868d00ffbb153c492 (patch)
treecc93cb04544bd31e3c73fedcdf798004cd2279ae /config-db/OpenSLX/ConfigDB.pm
parent* improved die() and warn() to fall back to the respective CORE-functions unl... (diff)
downloadcore-525a788603387bcc8bf8b5d868d00ffbb153c492.tar.gz
core-525a788603387bcc8bf8b5d868d00ffbb153c492.tar.xz
core-525a788603387bcc8bf8b5d868d00ffbb153c492.zip
* improved error handling during installation and execution in case the DB-module
can't be loaded (because of missing DBD::-modules). Closes ticket #118 git-svn-id: http://svn.openslx.org/svn/openslx/trunk@971 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX/ConfigDB.pm')
-rw-r--r--config-db/OpenSLX/ConfigDB.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/config-db/OpenSLX/ConfigDB.pm b/config-db/OpenSLX/ConfigDB.pm
index 8023cd2a..78a13e05 100644
--- a/config-db/OpenSLX/ConfigDB.pm
+++ b/config-db/OpenSLX/ConfigDB.pm
@@ -168,7 +168,17 @@ sub connect
$dbModule, $VERSION, $modVersion);
}
my $metaDB = $dbModule->new();
- $metaDB->connect($dbParams);
+ if (!eval '$metaDB->connect($dbParams);1') {
+ warn _tr("Unable to connect to DB-module <%s>\n%s", $dbModule, $@);
+ warn _tr("These DB-modules seem to work ok:");
+ foreach my $dbMod ('CSV', 'mysql', 'SQLite') {
+ if (eval "require DBD::$dbMod;") {
+ vlog 0, "\t$dbMod\n";
+ }
+ }
+ die _tr('Please use slxsettings to switch to another db-type.');
+ }
+
$self->{'db-type'} = $dbType;
$self->{'meta-db'} = $metaDB;
foreach my $tk (keys %{$DbSchema->{tables}}) {