From 08f4e63aeb4a4e06a0f787692406e116f571fc2c Mon Sep 17 00:00:00 2001 From: Benjamin Brahmer Date: Fri, 29 Dec 2023 18:31:15 +0100 Subject: Add Listener for missing db indices this allows admins to add them via occ. Signed-off-by: Benjamin Brahmer --- CHANGELOG.md | 1 + lib/AppInfo/Application.php | 3 +++ lib/Listeners/AddMissingIndicesListener.php | 32 +++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 lib/Listeners/AddMissingIndicesListener.php 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 @@ + + * @copyright 2023 Benjamin Brahmer + */ + + namespace OCA\News\Listeners; + + use OCP\EventDispatcher\Event; + use OCP\EventDispatcher\IEventListener; + use OCP\DB\Events\AddMissingIncidesEvent; + + /** + * @template-implements IEventListener + */ +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']); + } +} -- cgit v1.2.3