From d02f3c4648210205520606cf7ef883f44db3beb6 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 27 Nov 2014 18:56:57 +0100 Subject: [PATCH] Conversation URIs could be NULL on upgrade --- scripts/upgrade.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/scripts/upgrade.php b/scripts/upgrade.php index bd4a73d3af..c221a495af 100644 --- a/scripts/upgrade.php +++ b/scripts/upgrade.php @@ -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...");