From 15d975f143992a3f21bec4ac86430b684de8f7f9 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Aug 2022 04:57:41 +0000 Subject: [PATCH] Avoid some database errors --- src/Model/Post/Media.php | 2 ++ src/Navigation/Notifications/Repository/Notification.php | 2 +- src/Protocol/ActivityPub/Receiver.php | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index 3b23e5d0fe..8fb10ddd88 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -85,6 +85,7 @@ class Media } $media = self::unsetEmptyFields($media); + $media = DI::dbaDefinition()->truncateFieldsForTable('post-media', $media); // We are storing as fast as possible to avoid duplicated network requests // when fetching additional information for pictures and other content. @@ -94,6 +95,7 @@ class Media $media = self::fetchAdditionalData($media); $media = self::unsetEmptyFields($media); + $media = DI::dbaDefinition()->truncateFieldsForTable('post-media', $media); if (array_diff_assoc($media, $stored)) { $result = DBA::insert('post-media', $media, Database::INSERT_UPDATE); diff --git a/src/Navigation/Notifications/Repository/Notification.php b/src/Navigation/Notifications/Repository/Notification.php index 9b7b5c1033..a9630464aa 100644 --- a/src/Navigation/Notifications/Repository/Notification.php +++ b/src/Navigation/Notifications/Repository/Notification.php @@ -251,7 +251,7 @@ class Notification extends BaseRepository $this->db->update(self::$table_name, $fields, ['id' => $Notification->id]); } else { $fields['created'] = DateTimeFormat::utcNow(); - $this->db->insert(self::$table_name, $fields); + $this->db->insert(self::$table_name, $fields, Database::INSERT_IGNORE); $Notification = $this->selectOneById($this->db->lastInsertId()); } diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index b1ed57b26a..8c68bcba60 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -29,6 +29,7 @@ use Friendica\Core\Logger; use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Core\Worker; +use Friendica\Database\Database; use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\APContact; @@ -1911,7 +1912,7 @@ class Receiver private static function addArrivedId(string $id) { DBA::delete('arrived-activity', ["`received` < ?", DateTimeFormat::utc('now - 5 minutes')]); - DBA::insert('arrived-activity', ['object-id' => $id, 'received' => DateTimeFormat::utcNow()]); + DBA::insert('arrived-activity', ['object-id' => $id, 'received' => DateTimeFormat::utcNow()], Database::INSERT_IGNORE); } /**