From 8ddcdd86cb2cb003cc02b7faf2cc26ea75913d8d Mon Sep 17 00:00:00 2001 From: skodak Date: Wed, 10 Oct 2007 13:14:56 +0000 Subject: [PATCH] MDL-8248 savepoints in main upgrade.php --- lib/adminlib.php | 30 ++++++++ lib/db/upgrade.php | 175 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 183 insertions(+), 22 deletions(-) diff --git a/lib/adminlib.php b/lib/adminlib.php index 45f39fde78..789732a78f 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -9,6 +9,36 @@ * @package moodlecore */ +function upgrade_main_savepoint($result, $version) { + global $CFG; + + if ($result) { + if ($CFG->version >= $version) { + // something really wrong is going on in main upgrade script + error("Upgrade savepoint: Can not upgrade main version from $CFG->version to $version."); + } + set_config('version', $version); + } else { + notify ("Upgrade savepoint: Error during main upgrade to version $version"); + } +} + +function upgrade_mod_savepoint($result, $version, $type) { + //TODO +} + +function upgrade_plugin_savepoint($result, $version, $type, $dir) { + //TODO +} + +function upgrade_backup_savepoint($result, $version) { + //TODO +} + +function upgrade_blocks_savepoint($result, $version, $type) { + //TODO +} + /** * Upgrade plugins * diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index ac8c0bd085..dcd11c4680 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -31,6 +31,8 @@ function xmldb_main_upgrade($oldversion=0) { drop_table(new XMLDBTable('user_coursecreators')); drop_table(new XMLDBTable('user_admins')); } + + upgrade_main_savepoint($result, 2006100401); } if ($oldversion < 2006100601) { /// Disable the exercise module because it's unmaintained @@ -48,12 +50,16 @@ function xmldb_main_upgrade($oldversion=0) { rebuild_course_cache(); // Rebuld cache for all modules because they might have changed } } + + upgrade_main_savepoint($result, 2006100601); } if ($oldversion < 2006101001) { /// Disable the LAMS module by default (if it is installed) if (count_records('modules', 'name', 'lams') && !count_records('lams')) { set_field('modules', 'visible', 0, 'name', 'lams'); // Disable it by default } + + upgrade_main_savepoint($result, 2006101001); } if ($result && $oldversion < 2006102600) { @@ -80,6 +86,8 @@ function xmldb_main_upgrade($oldversion=0) { $result = $result && add_field($table, $field3); $result = $result && add_field($table, $field4); $result = $result && add_field($table, $field5); + + upgrade_main_savepoint($result, 2006102600); } if ($result && $oldversion < 2006112000) { @@ -91,6 +99,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field attachment $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2006112000); } if ($result && $oldversion < 2006112200) { @@ -109,6 +119,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field screenreader $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2006112200); } if ($oldversion < 2006120300) { /// Delete guest course section settings @@ -116,10 +128,14 @@ function xmldb_main_upgrade($oldversion=0) { if ($guest = get_record('user', 'username', 'guest')) { execute_sql("DELETE FROM {$CFG->prefix}course_display where userid=$guest->id", true); } + + upgrade_main_savepoint($result, 2006120300); } if ($oldversion < 2006120400) { /// Remove secureforms config setting execute_sql("DELETE FROM {$CFG->prefix}config where name='secureforms'", true); + + upgrade_main_savepoint($result, 2006120400); } if (!empty($CFG->rolesactive) && $oldversion < 2006120700) { // add moodle/user:viewdetails to all roles! @@ -130,6 +146,8 @@ function xmldb_main_upgrade($oldversion=0) { assign_capability('moodle/user:viewdetails', CAP_ALLOW, $roleid, $context->id); } } + + upgrade_main_savepoint($result, 2006120700); } // Move the auth plugin settings into the config_plugin table @@ -166,6 +184,8 @@ function xmldb_main_upgrade($oldversion=0) { break; // don't check the rest of the auth plugin names } } + + upgrade_main_savepoint($result, 2007010300); } if ($oldversion < 2007010301) { @@ -475,6 +495,7 @@ function xmldb_main_upgrade($oldversion=0) { // Create the table $result = $result && create_table($table); + upgrade_main_savepoint($result, 2007010301); } if ($result && $oldversion < 2007010404) { @@ -502,6 +523,8 @@ function xmldb_main_upgrade($oldversion=0) { $result && update_record('user_info_field', $field); } } + + upgrade_main_savepoint($result, 2007010404); } if ($result && $oldversion < 2007011501) { @@ -515,6 +538,8 @@ function xmldb_main_upgrade($oldversion=0) { unset_config('enablerecordcache'); unset($CFG->enablerecordcache); } + + upgrade_main_savepoint($result, 2007011501); } if ($result && $oldversion < 2007012100) { @@ -550,6 +575,8 @@ function xmldb_main_upgrade($oldversion=0) { } } } + + upgrade_main_savepoint($result, 2007012100); } if ($result && $oldversion < 2007012101) { @@ -569,6 +596,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of precision for field user->lang $result = $result && change_field_precision($table, $field); + + upgrade_main_savepoint($result, 2007012101); } if ($result && $oldversion < 2007012400) { @@ -580,10 +609,14 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch rename field accessctrl $result = $result && rename_field($table, $field, 'accessctrl'); + + upgrade_main_savepoint($result, 2007012400); } if ($result && $oldversion < 2007012500) { execute_sql("DELETE FROM {$CFG->prefix}user WHERE username='changeme'", true); + + upgrade_main_savepoint($result, 2007012500); } if ($result && $oldversion < 2007020400) { @@ -597,6 +630,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of nullability for field ajax $result = $result && change_field_notnull($table, $field); } + + upgrade_main_savepoint($result, 2007020400); } if (!empty($CFG->rolesactive) && $result && $oldversion < 2007021401) { @@ -611,11 +646,15 @@ function xmldb_main_upgrade($oldversion=0) { } } } + + upgrade_main_savepoint($result, 2007021401); } if ($result && $oldversion < 2007021501) { /// delete removed setting from config unset_config('tabselectedtofront'); + + upgrade_main_savepoint($result, 2007021501); } @@ -642,6 +681,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for role_sortorder $result = $result && create_table($table); + + upgrade_main_savepoint($result, 2007032200); } @@ -667,6 +708,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add index text $result = $result && add_index($table, $index); + + upgrade_main_savepoint($result, 2007040400); } if ($result && $oldversion < 2007041100) { @@ -687,6 +730,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add index idnumber $result = $result && add_index($table, $index); + upgrade_main_savepoint($result, 2007041100); } /* Changes to the custom profile menu type - store values rather than indices. @@ -717,6 +761,7 @@ function xmldb_main_upgrade($oldversion=0) { } } + upgrade_main_savepoint($result, 2007041600); } /// adding new gradebook tables @@ -778,6 +823,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for events_queue_handlers $result = $result && create_table($table); + upgrade_main_savepoint($result, 2007041800); } if ($result && $oldversion < 2007043001) { @@ -797,6 +843,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field status $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007043001); } if ($result && $oldversion < 2007050201) { @@ -808,6 +856,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field theme $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007050201); } if ($result && $oldversion < 2007051100) { @@ -827,6 +877,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field signup $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007051100); } if (!empty($CFG->rolesactive) && $result && $oldversion < 2007051801) { @@ -840,6 +892,8 @@ function xmldb_main_upgrade($oldversion=0) { $context = get_context_instance(CONTEXT_SYSTEM, SITEID); assign_capability('moodle/my:manageblocks',CAP_ALLOW,$defaultroleid,$context->id); } + + upgrade_main_savepoint($result, 2007051801); } if ($result && $oldversion < 2007052200) { @@ -850,11 +904,15 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch drop field stackdump $result = $result && drop_field($table, $field); + + upgrade_main_savepoint($result, 2007052200); } if ($result && $oldversion < 2007052300) { require_once($CFG->dirroot . '/question/upgrade.php'); $result = $result && question_remove_rqp_qtype(); + + upgrade_main_savepoint($result, 2007052300); } if ($result && $oldversion < 2007060500) { @@ -874,11 +932,15 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add key usermodified $result = $result && add_key($table, $key); + + upgrade_main_savepoint($result, 2007060500); } if ($result && $oldversion < 2007070603) { // Small update of guest user to be 100% sure it has the correct mnethostid (MDL-10375) set_field('user', 'mnethostid', $CFG->mnet_localhost_id, 'username', 'guest'); + + upgrade_main_savepoint($result, 2007070603); } if ($result && $oldversion < 2007071400) { @@ -935,11 +997,14 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add key applicationid $result = $result && add_key($table, $key); + upgrade_main_savepoint($result, 2007071400); } if ($result && $oldversion < 2007071607) { require_once($CFG->dirroot . '/question/upgrade.php'); $result = $result && question_remove_rqp_qtype_config_string(); + + upgrade_main_savepoint($result, 2007071607); } if ($result && $oldversion < 2007072200) { @@ -1299,6 +1364,8 @@ function xmldb_main_upgrade($oldversion=0) { rs_close($rs); } } + + upgrade_main_savepoint($result, 2007072200); } if ($result && $oldversion < 2007072400) { @@ -1312,6 +1379,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of default for field sessdata $result = $result && change_field_default($table, $field); + + upgrade_main_savepoint($result, 2007072400); } @@ -1332,6 +1401,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for grade_outcomes_courses $result = $result && create_table($table); + upgrade_main_savepoint($result, 2007073100); } @@ -1398,6 +1468,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for tag_instance $result = $result && create_table($table); + upgrade_main_savepoint($result, 2007073101); } @@ -1410,6 +1481,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field rawname $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007073103); } if ($result && $oldversion < 2007073105) { @@ -1430,6 +1503,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field description $result = $result && add_field($table, $field); } + + upgrade_main_savepoint($result, 2007073105); } // adding unique contraint on (courseid,shortname) of an outcome @@ -1442,6 +1517,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add key courseid-shortname $result = $result && add_key($table, $key); + + upgrade_main_savepoint($result, 2007080100); } /// originally there was supportname and supportemail upgrade code - this is handled in upgradesettings.php instead @@ -1464,6 +1541,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add index tagiditem $result = $result && add_index($table, $index); + upgrade_main_savepoint($result, 2007080202); } if ($result && $oldversion < 2007080300) { @@ -1487,6 +1565,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field aggregateoutcomes $result = $result && add_field($table, $field); } + + upgrade_main_savepoint($result, 2007080300); } if ($result && $oldversion < 2007080800) { /// Normalize course->shortname MDL-10026 @@ -1498,6 +1578,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of precision for field shortname $result = $result && change_field_precision($table, $field); + + upgrade_main_savepoint($result, 2007080800); } if ($result && $oldversion < 2007080900) { @@ -1519,6 +1601,8 @@ function xmldb_main_upgrade($oldversion=0) { /// make sure the system context has proper data get_system_context(false); + + upgrade_main_savepoint($result, 2007080900); } if ($result && $oldversion < 2007080903) { @@ -1561,11 +1645,14 @@ function xmldb_main_upgrade($oldversion=0) { $result = $result && add_index($table, $index); } + upgrade_main_savepoint($result, 2007080903); } if ($result && $oldversion < 2007081000) { require_once($CFG->dirroot . '/question/upgrade.php'); $result = $result && question_upgrade_context_etc(); + + upgrade_main_savepoint($result, 2007081000); } if ($result && $oldversion < 2007081302) { @@ -1617,6 +1704,7 @@ function xmldb_main_upgrade($oldversion=0) { $key->setAttributes(XMLDB_KEY_FOREIGN, array('groupingid'), 'groupings', array('id')); $result = $result && add_key($table, $key); + upgrade_main_savepoint($result, 2007081302); } if ($result && $oldversion < 2007082300) { @@ -1629,6 +1717,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field rawname $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007082300); } if ($result && $oldversion < 2007082700) { @@ -1640,6 +1730,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field timemodified $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007082700); } /// migrate all tags table to tag - this code MUST use SQL only, @@ -1701,6 +1793,8 @@ function xmldb_main_upgrade($oldversion=0) { drop_table($table); $table = new XMLDBTable('blog_tag_instance'); drop_table($table); + + upgrade_main_savepoint($result, 2007082701); } /// MDL-11015, MDL-11016 @@ -1803,6 +1897,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add key tagid $result = $result && add_key($table, $key); + upgrade_main_savepoint($result, 2007082800); } @@ -1830,6 +1925,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for user_private_key $result = $result && create_table($table); + + upgrade_main_savepoint($result, 2007082801); } /// Going to modify the applicationid from int(1) to int(10). Dropping and @@ -1858,6 +1955,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add key applicationid $result = $result && add_key($table, $key); + upgrade_main_savepoint($result, 2007082803); } if ($result && $oldversion < 2007090503) { @@ -1912,6 +2010,8 @@ function xmldb_main_upgrade($oldversion=0) { $sql = "UPDATE {$CFG->prefix}grade_categories SET aggregation = $i, aggregateonlygraded = 1 WHERE aggregation = $j"; execute_sql($sql, true); } + + upgrade_main_savepoint($result, 2007090503); } /// To have UNIQUE indexes over NULLable columns isn't cross-db at all @@ -1942,6 +2042,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add index idnumber-courseid $result = $result && add_index($table, $index); + upgrade_main_savepoint($result, 2007090600); } /// Create the permanent context_temp table to be used by build_context_path() @@ -1975,6 +2076,8 @@ function xmldb_main_upgrade($oldversion=0) { // upgrade from 1.6 - build all contexts create_contexts(null, true, true); } + + upgrade_main_savepoint($result, 2007092001); } /** @@ -2096,6 +2199,8 @@ function xmldb_main_upgrade($oldversion=0) { } } } + + upgrade_main_savepoint($result, 2007092002); } if ($result && $oldversion < 2007092803) { @@ -2172,6 +2277,8 @@ function xmldb_main_upgrade($oldversion=0) { /// fix incorrect -1 default for grade_item->display execute_sql("UPDATE {$CFG->prefix}grade_items SET display=0 WHERE display=-1"); + + upgrade_main_savepoint($result, 2007092803); } /// migrade grade letters - we can not do this in normal grades upgrade becuase we need all course contexts @@ -2189,6 +2296,8 @@ function xmldb_main_upgrade($oldversion=0) { if (!index_exists($table, $index)) { $result = $result && add_index($table, $index); } + + upgrade_main_savepoint($result, 2007092806); } if ($result && $oldversion < 2007100100) { @@ -2219,6 +2328,8 @@ function xmldb_main_upgrade($oldversion=0) { if (!table_exists($table)) { $result = $result && create_table($table); } + + upgrade_main_savepoint($result, 2007100100); } @@ -2239,6 +2350,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add field theme $result = $result && add_field($table, $field); + + upgrade_main_savepoint($result, 2007100300); } if ($result && $oldversion < 2007100301) { @@ -2263,6 +2376,8 @@ function xmldb_main_upgrade($oldversion=0) { if (!index_exists($table, $index)) { $result = $result && add_index($table, $index); } + + upgrade_main_savepoint($result, 2007100301); } if ($result && $oldversion < 2007100303) { @@ -2274,6 +2389,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of nullability for field summary $result = $result && change_field_notnull($table, $field); + + upgrade_main_savepoint($result, 2007100303); } if ($result && $oldversion < 2007100500) { @@ -2286,6 +2403,8 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch change of nullability for field path $result = $result && change_field_notnull($table, $field); + + upgrade_main_savepoint($result, 2007100500); } if ($result && $oldversion < 2007100700) { @@ -2340,28 +2459,7 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch create table for grade_import_values $result = $result && create_table($table); - } - - if ($result && $oldversion < 2007100803) { - - /// Define table grade_settings to be created - $table = new XMLDBTable('grade_settings'); - - /// Adding fields to table grade_settings - $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); - $table->addFieldInfo('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null); - $table->addFieldInfo('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null); - $table->addFieldInfo('value', XMLDB_TYPE_TEXT, 'small', null, null, null, null, null, null); - - /// Adding keys to table grade_settings - $table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id')); - $table->addKeyInfo('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id')); - - /// Adding indexes to table grade_settings - $table->addIndexInfo('courseid-name', XMLDB_INDEX_UNIQUE, array('courseid', 'name')); - - /// Launch create table for grade_settings - $result = $result && create_table($table); + upgrade_main_savepoint($result, 2007100700); } /// dropping context_rel table - not used anymore @@ -2374,6 +2472,8 @@ function xmldb_main_upgrade($oldversion=0) { if (table_exists($table)) { drop_table($table); } + + upgrade_main_savepoint($result, 2007100800); } /// Truncate the text_cahe table and add new index @@ -2389,6 +2489,33 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch add index timemodified $result = $result && add_index($table, $index); + + upgrade_main_savepoint($result, 2007100802); + } + +/// newtable for gradebook settings per course + if ($result && $oldversion < 2007100803) { + + /// Define table grade_settings to be created + $table = new XMLDBTable('grade_settings'); + + /// Adding fields to table grade_settings + $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->addFieldInfo('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null); + $table->addFieldInfo('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null); + $table->addFieldInfo('value', XMLDB_TYPE_TEXT, 'small', null, null, null, null, null, null); + + /// Adding keys to table grade_settings + $table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->addKeyInfo('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id')); + + /// Adding indexes to table grade_settings + $table->addIndexInfo('courseid-name', XMLDB_INDEX_UNIQUE, array('courseid', 'name')); + + /// Launch create table for grade_settings + $result = $result && create_table($table); + + upgrade_main_savepoint($result, 2007100803); } /// cleanup in user_lastaccess @@ -2399,6 +2526,8 @@ function xmldb_main_upgrade($oldversion=0) { FROM {$CFG->prefix}course c WHERE c.id = {$CFG->prefix}user_lastaccess.courseid)"; execute_sql($sql); + + upgrade_main_savepoint($result, 2007100902); } /// drop old gradebook tables @@ -2415,6 +2544,8 @@ function xmldb_main_upgrade($oldversion=0) { drop_table($table); } } + + upgrade_main_savepoint($result, 2007100903); } -- 2.39.5