From 2157cc74a49bd3f1ec33db2d675edf5fe8782e5a Mon Sep 17 00:00:00 2001 From: Kevin Pham Date: Tue, 22 Jun 2021 14:18:28 +1000 Subject: [PATCH] MDL-49795 logstore_standard: add foreign keys for userids & courseid Fields affected: userid, realuserid, courseid & relateduserid --- admin/tool/log/store/standard/db/install.xml | 6 +++- admin/tool/log/store/standard/db/upgrade.php | 29 +++++++++++++++++++- admin/tool/log/store/standard/version.php | 2 +- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/admin/tool/log/store/standard/db/install.xml b/admin/tool/log/store/standard/db/install.xml index e3b8c40b7e2..67b9abae7bf 100644 --- a/admin/tool/log/store/standard/db/install.xml +++ b/admin/tool/log/store/standard/db/install.xml @@ -1,5 +1,5 @@ - @@ -31,6 +31,10 @@ + + + + diff --git a/admin/tool/log/store/standard/db/upgrade.php b/admin/tool/log/store/standard/db/upgrade.php index 6496e66b446..4d35052f39c 100644 --- a/admin/tool/log/store/standard/db/upgrade.php +++ b/admin/tool/log/store/standard/db/upgrade.php @@ -25,13 +25,40 @@ defined('MOODLE_INTERNAL') || die(); function xmldb_logstore_standard_upgrade($oldversion) { - global $CFG; + global $CFG, $DB; + + require_once($CFG->libdir.'/db/upgradelib.php'); // Core Upgrade-related functions. + + $dbman = $DB->get_manager(); // Loads ddl manager and xmldb classes. // Automatically generated Moodle v3.9.0 release upgrade line. // Put any upgrade step following this. // Automatically generated Moodle v4.0.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2022053000) { + // Define index relateduserid (not unique) to be added to logstore_standard_log. + $table = new xmldb_table('logstore_standard_log'); + + // Launch add key userid. + $key = new xmldb_key('userid', XMLDB_KEY_FOREIGN, ['userid'], 'user', ['id']); + $dbman->add_key($table, $key); + + // Launch add key courseid. + $key = new xmldb_key('courseid', XMLDB_KEY_FOREIGN, ['courseid'], 'course', ['id']); + $dbman->add_key($table, $key); + + // Launch add key realuserid. + $key = new xmldb_key('realuserid', XMLDB_KEY_FOREIGN, ['realuserid'], 'user', ['id']); + $dbman->add_key($table, $key); + + // Launch add key relateduserid. + $key = new xmldb_key('relateduserid', XMLDB_KEY_FOREIGN, ['relateduserid'], 'user', ['id']); + $dbman->add_key($table, $key); + + // Standard savepoint reached. + upgrade_plugin_savepoint(true, 2022053000, 'logstore', 'standard'); + } return true; } diff --git a/admin/tool/log/store/standard/version.php b/admin/tool/log/store/standard/version.php index eb1e891e4c3..a4e9d286927 100644 --- a/admin/tool/log/store/standard/version.php +++ b/admin/tool/log/store/standard/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2022041900; // The current plugin version (Date: YYYYMMDDXX). +$plugin->version = 2022053000; // The current plugin version (Date: YYYYMMDDXX). $plugin->requires = 2022041200; // Requires this Moodle version. $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).