diff options
author | Benjamin Brahmer <info@b-brahmer.de> | 2023-12-29 18:31:15 +0100 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2023-12-30 15:25:56 +0100 |
commit | 08f4e63aeb4a4e06a0f787692406e116f571fc2c (patch) | |
tree | 18116818125c5abfea90c2b23c897c9122957a00 | |
parent | 64fe310488a2cb20af2ecafe9fb9a314aff516ce (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.md | 1 | ||||
-rw-r--r-- | lib/AppInfo/Application.php | 3 | ||||
-rw-r--r-- | lib/Listeners/AddMissingIndicesListener.php | 32 |
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']); + } +} |