summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Brahmer <info@b-brahmer.de>2023-12-29 18:31:15 +0100
committerBenjamin Brahmer <info@b-brahmer.de>2023-12-30 15:25:56 +0100
commit08f4e63aeb4a4e06a0f787692406e116f571fc2c (patch)
tree18116818125c5abfea90c2b23c897c9122957a00
parent64fe310488a2cb20af2ecafe9fb9a314aff516ce (diff)
Add Listener for missing db indices
this allows admins to add them via occ. Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/AppInfo/Application.php3
-rw-r--r--lib/Listeners/AddMissingIndicesListener.php32
3 files changed, 36 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f588a8785..c0ff3d765 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ The format is mostly based on [Keep a Changelog](https://keepachangelog.com/en/1
# Unreleased
## [25.x.x]
### Changed
+- Add DB index for news_feeds.deleted_at (#2526)
### Fixed
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index 8bfa09c86..e8e548c4b 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -24,6 +24,7 @@ use OCA\News\Hooks\UserDeleteHook;
use OCA\News\Search\FeedSearchProvider;
use OCA\News\Search\FolderSearchProvider;
use OCA\News\Search\ItemSearchProvider;
+use OCA\News\Listeners\AddMissingIndicesListener;
use OCA\News\Utility\Cache;
use OCP\AppFramework\Bootstrap\IBootContext;
@@ -34,6 +35,7 @@ use OCP\AppFramework\App;
use OCA\News\Fetcher\FeedFetcher;
use OCA\News\Fetcher\Fetcher;
use OCP\User\Events\BeforeUserDeletedEvent;
+use OCP\DB\Events\AddMissingIndicesEvent;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
@@ -87,6 +89,7 @@ class Application extends App implements IBootstrap
$context->registerEventListener(BeforeUserDeletedEvent::class, UserDeleteHook::class);
+ $context->registerEventListener(AddMissingIndicesEvent::class, AddMissingIndicesListener::class);
// parameters
$context->registerParameter('exploreDir', __DIR__ . '/../Explore/feeds');
diff --git a/lib/Listeners/AddMissingIndicesListener.php b/lib/Listeners/AddMissingIndicesListener.php
new file mode 100644
index 000000000..f9e697901
--- /dev/null
+++ b/lib/Listeners/AddMissingIndicesListener.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Nextcloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Benjamin Brahmer <info@b-brahmer.de>
+ * @copyright 2023 Benjamin Brahmer
+ */
+
+ namespace OCA\News\Listeners;
+
+ use OCP\EventDispatcher\Event;
+ use OCP\EventDispatcher\IEventListener;
+ use OCP\DB\Events\AddMissingIncidesEvent;
+
+ /**
+ * @template-implements IEventListener<Event|AddMissingIndicesEvent>
+ */
+class AddMissingIndicesListener implements IEventListener
+{
+ public function handle(Event $event): void
+ {
+ if (!$event instanceof AddMissingIncidesEvent) {
+ return;
+ }
+
+ $event->addMissingIndex('news_feeds', 'news_feeds_deleted_at_index', ['deleted_at']);
+ }
+}