summaryrefslogtreecommitdiff
path: root/roundcubemail/bin
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-15 07:28:05 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-15 07:28:05 +0000
commitc7adbfff46a087d3a899cf08be61a025de05f5ee (patch)
treeb828954489ab629d96bc7037c455f9012b4ecf16 /roundcubemail/bin
parentbbe3c2010df9041645a60c76cc3d3694a3aa05eb (diff)
Add minimal database schema check to installer and update script
git-svn-id: https://svn.roundcube.net/trunk@3490 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/bin')
-rwxr-xr-xroundcubemail/bin/update.sh22
1 files changed, 21 insertions, 1 deletions
diff --git a/roundcubemail/bin/update.sh b/roundcubemail/bin/update.sh
index c93d92dec..7a4d1cf17 100755
--- a/roundcubemail/bin/update.sh
+++ b/roundcubemail/bin/update.sh
@@ -12,7 +12,10 @@ $RCI = rcube_install::get_instance();
$RCI->load_config();
if ($RCI->configured) {
+ $success = true;
+
if ($messages = $RCI->check_config()) {
+ $success = false;
$err = 0;
// list missing config options
@@ -100,9 +103,26 @@ if ($RCI->configured) {
echo "Please fix your config files and run this script again!\n";
echo "See ya.\n";
}
+ }
+ // check database schema
+ if ($RCI->config['db_dsnw']) {
+ $DB = new rcube_mdb2($RCI->config['db_dsnw'], '', false);
+ $DB->db_connect('w');
+ if ($db_error_msg = $DB->is_error()) {
+ echo "Error connecting to database: $db_error_msg\n";
+ $success = false;
+ }
+ else if ($RCI->db_schema_check($DB, false)) {
+ $updatefile = INSTALL_PATH . 'SQL/' . $DB->db_provider . '.update.sql';
+ echo "WARNING: Database schema needs to be updated!\n";
+ echo "Open $updatefile and execute all queries that are superscribed with the currently installed version number\n";
+ $success = false;
+ }
}
- else {
+
+
+ if ($success) {
echo "This instance of RoundCube is up-to-date.\n";
echo "Have fun!\n";
}