diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index e7898488e70..18bd856a2cb 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1487,6 +1487,11 @@ function xmldb_main_upgrade($oldversion=0) { $result = $result && create_table($table); } + if ($result && $oldversion < 2007071607) { + require_once($CFG->dirroot . '/question/upgrade.php'); + $result = $result && question_remove_rqp_qtype_config_string(); + } + return $result; } ?> diff --git a/question/upgrade.php b/question/upgrade.php index 12701a02e8c..e9d1cd2b286 100644 --- a/question/upgrade.php +++ b/question/upgrade.php @@ -34,19 +34,39 @@ function question_check_no_rqp_questions($result) { } function question_remove_rqp_qtype() { + global $CFG; + $result = true; - $table = new XMLDBTable('question_rqp_states'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp_types'); - $result = $result && drop_table($table); - - $table = new XMLDBTable('question_rqp_servers'); - $result = $result && drop_table($table); + // Only remove the question type if the code is gone. + if (!is_dir($CFG->dirroot . '/question/type/rqp')) { + $table = new XMLDBTable('question_rqp_states'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp_types'); + $result = $result && drop_table($table); + + $table = new XMLDBTable('question_rqp_servers'); + $result = $result && drop_table($table); + + $result = $result && unset_config('qtype_rqp_version'); + } + + return $result; +} + +function question_remove_rqp_qtype_config_string() { + global $CFG; + + $result = true; + + // An earlier, buggy version of the previous function missed out the unset_config call. + if (!empty($CFG->qtype_rqp_version) && !is_dir($CFG->dirroot . '/question/type/rqp')) { + $result = $result && unset_config('qtype_rqp_version'); + } return $result; } diff --git a/version.php b/version.php index e6ae71c3d7c..2433ca533ed 100644 --- a/version.php +++ b/version.php @@ -6,9 +6,9 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2007071501; // YYYYMMDD = date - // XY = increments within a single day + $version = 2007071600; // YYYYMMDD = date + // XY = increments within a single day - $release = '1.9 dev'; // Human-friendly version name + $release = '1.9 dev'; // Human-friendly version name ?>