From 97c85a001cba0e67ade67081d8d7bc7c6d00a732 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 25 Mar 2019 10:31:26 +0800 Subject: [PATCH] MDL-64017 message_email: add new database table This table will be responsible for storing the messages that need to be emailed, but have not yet. A task will run that will email these and then remove them from the table. --- message/output/email/db/install.xml | 22 ++++++++++++++++++++++ message/output/email/db/upgrade.php | 29 ++++++++++++++++++++++++++++- message/output/email/version.php | 2 +- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 message/output/email/db/install.xml diff --git a/message/output/email/db/install.xml b/message/output/email/db/install.xml new file mode 100644 index 00000000000..8eb19a0336a --- /dev/null +++ b/message/output/email/db/install.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + +
+
+
diff --git a/message/output/email/db/upgrade.php b/message/output/email/db/upgrade.php index e7bb6de6490..b4fe03373fa 100644 --- a/message/output/email/db/upgrade.php +++ b/message/output/email/db/upgrade.php @@ -30,7 +30,9 @@ defined('MOODLE_INTERNAL') || die(); * @param int $oldversion The version that we are upgrading from */ function xmldb_message_email_upgrade($oldversion) { - global $CFG; + global $DB; + + $dbman = $DB->get_manager(); // Automatically generated Moodle v3.3.0 release upgrade line. // Put any upgrade step following this. @@ -44,5 +46,30 @@ function xmldb_message_email_upgrade($oldversion) { // Automatically generated Moodle v3.6.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2019032500) { + // Define table message_email_messages to be created. + $table = new xmldb_table('message_email_messages'); + + // Adding fields to table message_email_messages. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('useridto', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('messageid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table message_email_messages. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('useridto', XMLDB_KEY_FOREIGN, array('useridto'), 'user', array('id')); + $table->add_key('conversationid', XMLDB_KEY_FOREIGN, array('conversationid'), 'message_conversations', array('id')); + $table->add_key('messageid', XMLDB_KEY_FOREIGN, array('messageid'), 'messages', array('id')); + + // Conditionally launch create table for message_email_messages. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Savepoint reached. + upgrade_plugin_savepoint(true, 2019032500, 'message', 'email'); + } + return true; } diff --git a/message/output/email/version.php b/message/output/email/version.php index 2b0fe106b62..aab83a52457 100644 --- a/message/output/email/version.php +++ b/message/output/email/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX) +$plugin->version = 2019032500; // The current plugin version (Date: YYYYMMDDXX) $plugin->requires = 2018112800; // Requires this Moodle version $plugin->component = 'message_email'; // Full name of the plugin (used for diagnostics)