From: skodak Date: Sun, 22 Jun 2008 23:35:52 +0000 (+0000) Subject: MDL-15343 mod upgrade savepoints implemented (the xmldb generator is not updated... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=04264aeda42bff1ec344821a3cdafa5207db5c01;p=moodle.git MDL-15343 mod upgrade savepoints implemented (the xmldb generator is not updated yet) --- diff --git a/lib/adminlib.php b/lib/adminlib.php index ee18e82592..a8e1d466a1 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -39,8 +39,23 @@ function upgrade_main_savepoint($result, $version) { } } -function upgrade_mod_savepoint($result, $version, $type) { - //TODO +function upgrade_mod_savepoint($result, $version, $modname) { + global $DB; + + if (!$module = $DB->get_record('modules', array('name'=>$modname))) { + print_error('modulenotexist', 'debug', '', $modname); + } + + if ($result) { + if ($module->version >= $version) { + // something really wrong is going on in upgrade script + print_error('cannotdowngrade', 'debug', '', array($module->version, $version)); + } + $module->verions = $version; + $DB->update_record('modules', $module); + } else { + notify ("Upgrade savepoint: Error during mod upgrade to version $version"); + } } function upgrade_plugin_savepoint($result, $version, $type, $dir) { diff --git a/lib/setuplib.php b/lib/setuplib.php index 61a5220f8e..73bb67abcd 100644 --- a/lib/setuplib.php +++ b/lib/setuplib.php @@ -48,13 +48,6 @@ class moodle_exception extends Exception { * Default exception handler, uncought exceptions are equivalent to using print_error() */ function default_exception_handler($ex) { - global $DB; - - if ($DB) { - //if you enable db debugging and exception is thrown, the print footer prints a lot of rubbish - $DB->set_debug(0); - } - $backtrace = $ex->getTrace(); $place = array('file'=>$ex->getFile(), 'line'=>$ex->getLine(), 'exception'=>get_class($ex)); array_unshift($backtrace, $place); diff --git a/lib/weblib.php b/lib/weblib.php index cc53ab82d5..b23256ddd8 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -5651,7 +5651,12 @@ function print_error($errorcode, $module='', $link='', $a=NULL) { * Internal function - do not use directly!! */ function _print_normal_error($errorcode, $module, $a, $link, $backtrace, $debuginfo=null, $showerrordebugwarning=false) { - global $CFG, $SESSION, $THEME; + global $CFG, $SESSION, $THEME, $DB; + + if ($DB) { + //if you enable db debugging and exception is thrown, the print footer prints a lot of rubbish + $DB->set_debug(0); + } if ($module == 'error') { $modulelink = 'moodle'; diff --git a/mod/assignment/db/upgrade.php b/mod/assignment/db/upgrade.php index ef11ef6e72..ddc7df69d6 100644 --- a/mod/assignment/db/upgrade.php +++ b/mod/assignment/db/upgrade.php @@ -33,6 +33,7 @@ function xmldb_assignment_upgrade($oldversion=0) { $DB->set_debug(false); assignment_update_grades(); $DB->set_debug(true); + upgrade_mod_savepoint($result, 2007101511, 'assignment'); } return $result; diff --git a/mod/data/db/upgrade.php b/mod/data/db/upgrade.php index 69d7b7ef1a..730899ba06 100644 --- a/mod/data/db/upgrade.php +++ b/mod/data/db/upgrade.php @@ -36,6 +36,7 @@ function xmldb_data_upgrade($oldversion=0) { if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } + upgrade_mod_savepoint($result, 2007101512, 'data'); } if ($result && $oldversion < 2007101513) { @@ -50,6 +51,7 @@ function xmldb_data_upgrade($oldversion=0) { $dbman->change_field_notnull($table, $field); // Second step, Set default to 0 $dbman->change_field_default($table, $field); + upgrade_mod_savepoint($result, 2007101513, 'data'); } return $result; diff --git a/mod/feedback/db/upgrade.php b/mod/feedback/db/upgrade.php index 4fd94503dd..c9a7c57e31 100644 --- a/mod/feedback/db/upgrade.php +++ b/mod/feedback/db/upgrade.php @@ -98,6 +98,7 @@ function xmldb_feedback_upgrade($oldversion=0) { $dbman->create_table($table); //////////////////////////////////////////////////////////// + upgrade_mod_savepoint($result, 2007012310, 'feedback'); } if ($result && $oldversion < 2007050504) { @@ -127,6 +128,7 @@ function xmldb_feedback_upgrade($oldversion=0) { $dbman->add_field($table, $field); //////////////////////////////////////////////////////////// + upgrade_mod_savepoint($result, 2007050504, 'feedback'); } if ($result && $oldversion < 2007102600) { @@ -137,6 +139,7 @@ function xmldb_feedback_upgrade($oldversion=0) { if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } + upgrade_mod_savepoint($result, 2007102600, 'feedback'); } if ($result && $oldversion < 2008042400) { //New version in version.php @@ -146,6 +149,7 @@ function xmldb_feedback_upgrade($oldversion=0) { $result = $result && $DB->execute($update_sql.$fb->id); } } + upgrade_mod_savepoint($result, 2008042400, 'feedback'); } if ($result && $oldversion < 2008042401) { //New version in version.php @@ -168,6 +172,7 @@ function xmldb_feedback_upgrade($oldversion=0) { $result = $result && $DB->execute($update_sql1); $result = $result && $DB->execute($update_sql2); } + upgrade_mod_savepoint($result, 2008042401, 'feedback'); } if ($result && $oldversion < 2008042801) { @@ -195,6 +200,8 @@ function xmldb_feedback_upgrade($oldversion=0) { $new_log_display->mtable = 'course'; $new_log_display->field = 'shortname'; $result = $result && $DB->insert_record('log_display', $new_log_display); + + upgrade_mod_savepoint($result, 2008042801, 'feedback'); } if ($result && $oldversion < 2008042900) { @@ -203,6 +210,8 @@ function xmldb_feedback_upgrade($oldversion=0) { $field = new xmldb_field('autonumbering', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '1', 'multiple_submit'); /// Launch add field2 $dbman->add_field($table, $field); + + upgrade_mod_savepoint($result, 2008042900, 'feedback'); } if ($result && $oldversion < 2008050104) { @@ -211,6 +220,8 @@ function xmldb_feedback_upgrade($oldversion=0) { $field = new xmldb_field('site_after_submit', XMLDB_TYPE_CHAR, '255', null, null, false, null, null, '', 'autonumbering'); /// Launch add field2 $dbman->add_field($table, $field); + + upgrade_mod_savepoint($result, 2008050104, 'feedback'); } if ($result && $oldversion < 2008050105) { @@ -218,7 +229,10 @@ function xmldb_feedback_upgrade($oldversion=0) { $table = new xmldb_table('feedback_tracking'); $field = new xmldb_field('count'); $dbman->drop_field($table, $field); + + upgrade_mod_savepoint($result, 2008050105, 'feedback'); } + return $result; } diff --git a/mod/forum/db/upgrade.php b/mod/forum/db/upgrade.php index acd4cea382..3b51e546d0 100644 --- a/mod/forum/db/upgrade.php +++ b/mod/forum/db/upgrade.php @@ -42,6 +42,8 @@ function xmldb_forum_upgrade($oldversion=0) { $DB->set_debug(false); forum_update_grades(); $DB->set_debug(true); + + upgrade_mod_savepoint($result, 2007101511, 'forum'); } if ($result && $oldversion < 2007101512) { @@ -70,6 +72,8 @@ function xmldb_forum_upgrade($oldversion=0) { $DB->set_debug(true); $rs-close(); } + + upgrade_mod_savepoint($result, 2007101512, 'forum'); } diff --git a/mod/lesson/db/upgrade.php b/mod/lesson/db/upgrade.php index 98a3331e47..5089fecd44 100644 --- a/mod/lesson/db/upgrade.php +++ b/mod/lesson/db/upgrade.php @@ -40,6 +40,8 @@ function xmldb_lesson_upgrade($oldversion=0) { /// Launch rename field usegrademax to usemaxgrade $dbman->rename_field($table, $field, 'usemaxgrade'); } + + upgrade_mod_savepoint($result, 2007072201, 'lesson'); } return $result; diff --git a/mod/quiz/db/upgrade.php b/mod/quiz/db/upgrade.php index 796713864a..80fd008761 100644 --- a/mod/quiz/db/upgrade.php +++ b/mod/quiz/db/upgrade.php @@ -45,7 +45,9 @@ function xmldb_quiz_upgrade($oldversion=0) { $dbman->create_table($table); } + upgrade_mod_savepoint($result, 2008062000, 'quiz'); } + if ($result && $oldversion < 2008062001) { $reporttoinsert = new object(); $reporttoinsert->name = 'overview'; @@ -71,6 +73,8 @@ function xmldb_quiz_upgrade($oldversion=0) { $reporttoinsert->name = 'grading'; $reporttoinsert->displayorder = 6000; $result = $result && $DB->insert_record('quiz_report', $reporttoinsert); + + upgrade_mod_savepoint($result, 2008062001, 'quiz'); }