]> git.mxchange.org Git - friendica.git/commitdiff
Fix fatal error
authorMichael <heluecht@pirati.ca>
Sat, 10 Jul 2021 21:08:55 +0000 (21:08 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 10 Jul 2021 21:08:55 +0000 (21:08 +0000)
src/Database/PostUpdate.php
src/Model/Event.php

index 64574f2445018f5da533c95da1c6d5570b1cdbe0..0b640f187562ef647ec8d1b3419eb2baab4fdfe5 100644 (file)
@@ -100,6 +100,9 @@ class PostUpdate
                if (!self::update1426()) {
                        return false;
                }
+               if (!self::update1427()) {
+                       return false;
+               }
                return true;
        }
 
@@ -961,4 +964,51 @@ class PostUpdate
 
                return false;
        }
+
+       /**
+        * update the "uri-id" field in the event table
+        *
+        * @return bool "true" when the job is done
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
+        */
+       private static function update1427()
+       {
+               // Was the script completed?
+               if (DI::config()->get("system", "post_update_version") >= 1427) {
+                       return true;
+               }
+
+               $condition = ["`uri-id` IS NULL"];
+               Logger::info('Start', ['rest' => DBA::count('event', $condition)]);
+
+               $rows = 0;
+               $events = DBA::select('event', ['id', 'uri', 'guid'], $condition, ['limit' => 1000]);
+
+               if (DBA::errorNo() != 0) {
+                       Logger::error('Database error', ['no' => DBA::errorNo(), 'message' => DBA::errorMessage()]);
+                       return false;
+               }
+
+               while ($event = DBA::fetch($events)) {
+                       if (!empty($event['guid'])) {
+                               $uriid = ItemURI::insert(['uri' => $event['uri'], 'guid' => $event['guid']]);
+                       } else {
+                               $uriid = ItemURI::getIdByURI($event['uri']);
+                       }
+                       DBA::update('event', ['uri-id' => $uriid], ['id' => $event['id']]);
+                       ++$rows;
+               }
+               DBA::close($events);
+
+               Logger::info('Processed', ['rows' => $rows]);
+
+               if ($rows <= 100) {
+                       DI::config()->set("system", "post_update_version", 1427);
+                       Logger::info('Done');
+                       return true;
+               }
+
+               return false;
+       }
 }
index f0a552303a599368fa61461eb3932f6d815256a3..ed1cff9c310e28930c7cf7bdb39a442d4f049f83 100644 (file)
@@ -589,10 +589,10 @@ class Event
                $last_date = '';
                $fmt = DI::l10n()->t('l, F j');
                foreach ($event_result as $event) {
-                       $item = Post::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link', 'private'], ['id' => $event['itemid']]);
+                       $item = Post::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link', 'private', 'uri-id'], ['id' => $event['itemid']]);
                        if (!DBA::isResult($item)) {
                                // Using default values when no item had been found
-                               $item = ['plink' => '', 'author-name' => '', 'author-avatar' => '', 'author-link' => '', 'private' => Item::PUBLIC];
+                               $item = ['plink' => '', 'author-name' => '', 'author-avatar' => '', 'author-link' => '', 'private' => Item::PUBLIC, 'uri-id' => ($event['uri-id'] ?? 0)];
                        }
 
                        $event = array_merge($event, $item);