Conversation URIs could be NULL on upgrade

This commit is contained in:
Mikael Nordfeldth 2014-11-27 18:56:57 +01:00
parent 8ad4d1baf8
commit d02f3c4648

View File

@ -34,6 +34,8 @@ require_once INSTALLDIR.'/scripts/commandline.inc';
function main() function main()
{ {
if (Event::handle('StartUpgrade')) { if (Event::handle('StartUpgrade')) {
fixupConversationURIs();
updateSchemaCore(); updateSchemaCore();
updateSchemaPlugins(); updateSchemaPlugins();
@ -199,6 +201,29 @@ function initConversation()
printfnq("DONE.\n"); 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() function initGroupProfileId()
{ {
printfnq("Ensuring all User_group entries have a Profile and profile_id..."); printfnq("Ensuring all User_group entries have a Profile and profile_id...");