X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fupdate.sh;h=a2988879c4e6f2f5ae62c193a82d95f16d5f9918;hb=3c6b2d3d53943671350cdacec5261affaff31459;hp=a9a917c8c0de37191c41ddcdb72cb6f95a616bac;hpb=649963776e4a8207ae7926a4f912c4f478a8c025;p=roundcube.git diff --git a/bin/update.sh b/bin/update.sh index a9a917c..a298887 100755 --- a/bin/update.sh +++ b/bin/update.sh @@ -1,6 +1,8 @@ -#!/usr/bin/php +#!/usr/bin/env php load_config(); if ($RCI->configured) { + $success = true; + if ($messages = $RCI->check_config()) { + $success = false; $err = 0; // list missing config options @@ -75,7 +80,7 @@ if ($RCI->configured) { // Success! if ($write1 && $write2) { echo "Done.\n"; - echo "Your configuration files are now up-tp-date!\n"; + echo "Your configuration files are now up-to-date!\n"; } else { echo "Failed to write config files!\n"; @@ -98,18 +103,36 @@ 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)) { + $db_map = array('pgsql' => 'postgres', 'mysqli' => 'mysql', 'sqlsrv' => 'mssql'); + $updatefile = INSTALL_PATH . 'SQL/' . (isset($db_map[$DB->db_provider]) ? $db_map[$DB->db_provider] : $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 { - echo "This instance of RoundCube is up-to-date.\n"; + + + if ($success) { + echo "This instance of Roundcube is up-to-date.\n"; echo "Have fun!\n"; } } else { - echo "This instance of RoundCube is not yet configured!\n"; + echo "This instance of Roundcube is not yet configured!\n"; echo "Open http://url-to-roundcube/installer/ in your browser and follow the instuctions.\n"; } echo "\n"; -?> \ No newline at end of file +?>