summaryrefslogtreecommitdiff
path: root/bin/update.sh
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-04-15 07:28:05 +0000
committerthomascube <thomas@roundcube.net>2010-04-15 07:28:05 +0000
commit2491c6240cad60e68916a79c7a0689bedc2cefd9 (patch)
treef55f1ad34258ee2d89a3fe90bab3b8cbd05fed9e /bin/update.sh
parenta35062a1eba5c6c15f703686cd4fecc5536d74df (diff)
Add minimal database schema check to installer and update script
Diffstat (limited to 'bin/update.sh')
-rwxr-xr-xbin/update.sh22
1 files changed, 21 insertions, 1 deletions
diff --git a/bin/update.sh b/bin/update.sh
index c93d92dec..7a4d1cf17 100755
--- a/bin/update.sh
+++ b/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";
}