]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Conversation URIs could be NULL on upgrade
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 27 Nov 2014 17:56:57 +0000 (18:56 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 27 Nov 2014 17:56:57 +0000 (18:56 +0100)
scripts/upgrade.php

index bd4a73d3af65350ec18f70ee413634ac32d42198..c221a495af1cc04489643ce24bb3ce8a10bc1cd8 100644 (file)
@@ -34,6 +34,8 @@ require_once INSTALLDIR.'/scripts/commandline.inc';
 function main()
 {
     if (Event::handle('StartUpgrade')) {
+        fixupConversationURIs();
+
         updateSchemaCore();
         updateSchemaPlugins();
 
@@ -199,6 +201,29 @@ function initConversation()
     printfnq("DONE.\n");
 }
 
+function fixupConversationURIs()
+{
+    printfnq("Ensuring all conversations have a URI...");
+
+    $conv = new Conversation();
+    $conv->whereAdd('uri IS NULL');
+
+    if ($conv->find()) {
+        $rounds = 0;
+        while ($conv->fetch()) {
+            $uri = common_local_url('conversation', array('id' => $conv->id));
+            $sql = sprintf('UPDATE conversation SET uri="%1$s" WHERE id="%2$d";',
+                            $conv->escape($uri), $conv->id);
+            $conv->query($sql);
+            if (($conv->N-++$rounds) % 500 == 0) {
+                printfnq(sprintf(' %d items left...', $conv->N-$rounds));
+            }
+        }
+    }
+
+    printfnq("DONE.\n");
+}
+
 function initGroupProfileId()
 {
     printfnq("Ensuring all User_group entries have a Profile and profile_id...");