MDL-48549 mod_assign: added upgrade to clean the tables

This commit is contained in:
Mark Nelson
2014-12-26 18:58:22 -08:00
parent 935c6a5539
commit de17153b4c
2 changed files with 33 additions and 3 deletions
+32
View File
@@ -496,5 +496,37 @@ function xmldb_assign_upgrade($oldversion) {
upgrade_mod_savepoint(true, 2014051201, 'assign');
}
if ($oldversion < 2014051202) {
// Delete any entries from the assign_user_flags and assign_user_mapping that are no longer required.
if ($DB->get_dbfamily() === 'mysql') {
$sql1 = "DELETE {assign_user_flags}
FROM {assign_user_flags}
LEFT JOIN {assign}
ON {assign_user_flags}.assignment = {assign}.id
WHERE {assign}.id IS NULL";
$sql2 = "DELETE {assign_user_mapping}
FROM {assign_user_mapping}
LEFT JOIN {assign}
ON {assign_user_mapping}.assignment = {assign}.id
WHERE {assign}.id IS NULL";
} else {
$sql1 = "DELETE FROM {assign_user_flags}
WHERE NOT EXISTS (
SELECT 'x' FROM {assign}
WHERE {assign_user_flags}.assignment = {assign}.id)";
$sql2 = "DELETE FROM {assign_user_mapping}
WHERE NOT EXISTS (
SELECT 'x' FROM {assign}
WHERE {assign_user_mapping}.assignment = {assign}.id)";
}
$DB->execute($sql1);
$DB->execute($sql2);
upgrade_mod_savepoint(true, 2014051202, 'assign');
}
return true;
}
+1 -3
View File
@@ -25,8 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'mod_assign'; // Full name of the plugin (used for diagnostics).
$plugin->version = 2014051201; // The current module version (Date: YYYYMMDDXX).
$plugin->version = 2014051202; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2014050800; // Requires this Moodle version.
$plugin->cron = 60;