diff options
| author | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-15 07:28:05 +0000 |
|---|---|---|
| committer | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-15 07:28:05 +0000 |
| commit | c7adbfff46a087d3a899cf08be61a025de05f5ee (patch) | |
| tree | b828954489ab629d96bc7037c455f9012b4ecf16 /roundcubemail/bin | |
| parent | bbe3c2010df9041645a60c76cc3d3694a3aa05eb (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-x | roundcubemail/bin/update.sh | 22 |
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"; } |
