From a63f98245cdbc3b10fb395cb7ebb1ea0b35a7e67 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 21 Dec 2017 13:28:07 +0800 Subject: [PATCH] MDL-36941 core: added new messaging and notification tables --- lib/db/install.xml | 76 +++++++++++++++++++++++++++++++ lib/db/upgrade.php | 111 +++++++++++++++++++++++++++++++++++++++++++++ version.php | 2 +- 3 files changed, 188 insertions(+), 1 deletion(-) diff --git a/lib/db/install.xml b/lib/db/install.xml index 97df4857b38..192df05a358 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -591,6 +591,82 @@ + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 78ebbee0dd0..e7f8cde2384 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2020,5 +2020,116 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2018022800.03); } + if ($oldversion < 2018032200.01) { + // Define table 'messages' to be created. + $table = new xmldb_table('messages'); + + // Adding fields to table 'messages'. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('useridfrom', 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('subject', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('fullmessage', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('fullmessageformat', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0); + $table->add_field('fullmessagehtml', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('smallmessage', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table 'messages'. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('useridfrom', XMLDB_KEY_FOREIGN, array('useridfrom'), 'user', array('id')); + $table->add_key('conversationid', XMLDB_KEY_FOREIGN, array('conversationid'), 'message_conversations', array('id')); + + // Conditionally launch create table for 'messages'. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Define table 'message_conversations' to be created. + $table = new xmldb_table('message_conversations'); + + // Adding fields to table 'message_conversations'. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table 'message_conversations'. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + + // Conditionally launch create table for 'message_conversations'. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Define table 'message_conversation_members' to be created. + $table = new xmldb_table('message_conversation_members'); + + // Adding fields to table 'message_conversation_members'. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table 'message_conversation_members'. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('conversationid', XMLDB_KEY_FOREIGN, array('conversationid'), 'message_conversations', array('id')); + $table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id')); + + // Conditionally launch create table for 'message_conversation_members'. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Define table 'message_user_actions' to be created. + $table = new xmldb_table('message_user_actions'); + + // Adding fields to table 'message_user_actions'. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('messageid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table 'message_user_actions'. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id')); + $table->add_key('messageid', XMLDB_KEY_FOREIGN, array('messageid'), 'messages', array('id')); + + // Conditionally launch create table for 'message_user_actions'. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Define table 'notifications' to be created. + $table = new xmldb_table('notifications'); + + // Adding fields to table 'notifications'. + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('useridfrom', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('useridto', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + $table->add_field('subject', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('fullmessage', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('fullmessageformat', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0); + $table->add_field('fullmessagehtml', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('smallmessage', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('component', XMLDB_TYPE_CHAR, '100', null, null, null, null); + $table->add_field('eventtype', XMLDB_TYPE_CHAR, '100', null, null, null, null); + $table->add_field('contexturl', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('contexturlname', XMLDB_TYPE_TEXT, null, null, null, null, null); + $table->add_field('timeread', XMLDB_TYPE_INTEGER, '10', null, false, null, null); + $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); + + // Adding keys to table 'notifications'. + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('useridto', XMLDB_KEY_FOREIGN, array('useridto'), 'user', array('id')); + + // Conditionally launch create table for 'notifications'. + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + // Main savepoint reached. + upgrade_main_savepoint(true, 2018032200.01); + } + return true; } diff --git a/version.php b/version.php index 10e75eab7b0..1fb652d2d6b 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2018032200.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2018032200.01; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes.