diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 17aac6e9a5..dab3db087c 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -82,6 +82,7 @@ use OCA\Talk\Federation\Proxy\TalkV1\Notifier\RoomModifiedListener as TalkV1Room use OCA\Talk\Files\Listener as FilesListener; use OCA\Talk\Files\TemplateLoader as FilesTemplateLoader; use OCA\Talk\Flow\RegisterOperationsListener; +use OCA\Talk\Listener\AddMissingIndicesListener; use OCA\Talk\Listener\BeforeUserLoggedOutListener; use OCA\Talk\Listener\BotListener; use OCA\Talk\Listener\CalDavEventListener; @@ -137,6 +138,7 @@ use OCP\Collaboration\AutoComplete\AutoCompleteFilterEvent; use OCP\Collaboration\Resources\IProviderManager; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; use OCP\Config\BeforePreferenceSetEvent; +use OCP\DB\Events\AddMissingIndicesEvent; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\ICloudFederationProvider; use OCP\Federation\ICloudFederationProviderManager; @@ -350,6 +352,9 @@ class Application extends App implements IBootstrap { $context->registerSearchProvider(CurrentMessageSearch::class); $context->registerSearchProvider(MessageSearch::class); + // Fix database issues + $context->registerEventListener(AddMissingIndicesEvent::class, AddMissingIndicesListener::class); + $context->registerDashboardWidget(TalkWidget::class); $context->registerNotifierService(Notifier::class); diff --git a/lib/Listener/AddMissingIndicesListener.php b/lib/Listener/AddMissingIndicesListener.php new file mode 100644 index 0000000000..26859a994f --- /dev/null +++ b/lib/Listener/AddMissingIndicesListener.php @@ -0,0 +1,35 @@ + + */ +class AddMissingIndicesListener implements IEventListener { + #[\Override] + public function handle(Event $event): void { + if (!($event instanceof AddMissingIndicesEvent)) { + // Unrelated + return; + } + + /** + * Added to @see Version3003Date20180720162342 + */ + $event->addMissingIndex( + 'talk_rooms', + 'tr_room_object', + ['object_type', 'object_id'] + ); + } +} diff --git a/lib/Migration/Version3003Date20180720162342.php b/lib/Migration/Version3003Date20180720162342.php index f0c35333af..5c1d914078 100644 --- a/lib/Migration/Version3003Date20180720162342.php +++ b/lib/Migration/Version3003Date20180720162342.php @@ -38,6 +38,7 @@ class Version3003Date20180720162342 extends SimpleMigrationStep { 'length' => 64, 'default' => '', ]); + $table->addIndex(['object_type', 'object_id'], 'tr_room_object'); } return $schema;