MDL-65436 message: fix error while upgrading legacy self-conversations
authorSara Arjona <sara@moodle.com>
Mon, 29 Apr 2019 05:53:07 +0000 (07:53 +0200)
committerSara Arjona <sara@moodle.com>
Mon, 29 Apr 2019 09:53:56 +0000 (11:53 +0200)
Delete self-messages from the legacy message_read table once they
are migrated.

lib/db/upgrade.php

index dea5215..6bf460e 100644 (file)
@@ -3128,12 +3128,13 @@ function xmldb_main_upgrade($oldversion) {
             $mua->timecreated = $message->timeread;
 
             $DB->insert_record('message_user_actions', $mua);
+
+            // The self-conversation message has been migrated. Delete the record from the legacy table as soon as possible
+            // to avoid migrate it twice.
+            $DB->delete_records('message_read', ['id' => $message->id]);
         }
         $legacyselfmessagesrs->close();
 
-        // We can now delete the records from legacy table because the self-conversations have been migrated from the legacy tables.
-        $DB->delete_records_select('message_read', $select);
-
         // STEP 3. For existing users without self-conversations, create and star it.
 
         // Get all the users without a self-conversation.