+ // 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 ($err = $RCI->db_schema_check($DB, false)) {
+ $updatefile = INSTALL_PATH . 'SQL/' . (isset($RCI->db_map[$DB->db_provider]) ? $RCI->db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql';
+ echo "WARNING: Database schema needs to be updated!\n";
+ echo join("\n", $err) . "\n\n";
+ $success = false;
+
+ if ($opts['version']) {
+ echo "Do you want to run the update queries to get the schmea fixed? (y/N)\n";
+ $input = trim(fgets(STDIN));
+ if (strtolower($input) == 'y') {
+ $success = $RCI->update_db($DB, $opts['version']);
+ }
+ }
+
+ if (!$success)
+ echo "Open $updatefile and execute all queries below the comment with the currently installed version number.\n";
+ }
+ }
+
+ // index contacts for fulltext searching
+ if (version_compare($opts['version'], '0.6', '<')) {
+ system(INSTALL_PATH . 'bin/indexcontacts.sh');