aboutsummaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2026-03-17 11:44:31 +0100
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2026-03-17 11:44:31 +0100
commitde9d2e5415f7b39c2210e6c8193b216daa309219 (patch)
tree431ea469c74c115174b4edeab90b10bb214116af /db
parent0e093884f4dee09bf4dd7101699e4eac5360786a (diff)
improve performance of querying studygroup proposals in the according widget, fixes #6363
Closes #6363 Merge request studip/studip!4826
Diffstat (limited to 'db')
-rw-r--r--db/migrations/6.0.54_add_keys_for_studygroup_proposals.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php b/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php
new file mode 100644
index 0000000..11bae6f
--- /dev/null
+++ b/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * @see https://gitlab.studip.de/studip/studip/-/issues/6363
+ */
+final class AddKeysForStudygroupProposals extends Migration
+{
+ public function description()
+ {
+ return 'Add keys for the studygroup proposals query in MyStudygroupsController';
+ }
+
+ protected function up()
+ {
+ $query = "ALTER TABLE `seminare`
+ DROP INDEX `status`,
+ ADD INDEX `status_mkdate_seminar` (`status`, `mkdate`, `seminar_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `mvv_stg_stgteil`
+ DROP INDEX `stgteil_id`,
+ ADD INDEX `stgteil_studiengang` (`stgteil_id`, `studiengang_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `mvv_stgteil`
+ DROP INDEX `fach_id`,
+ ADD INDEX `fach_stgteil` (`fach_id`, `stgteil_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `studygroup_stgteil`
+ DROP INDEX `studygroup_id_2`,
+ DROP INDEX `stgteil_id`,
+ ADD INDEX `stgteil_studygroup` (`stgteil_id`, `studygroup_id`)";
+ DBManager::get()->exec($query);
+ }
+
+ protected function down()
+ {
+ $query = "ALTER TABLE `studygroup_stgteil`
+ DROP INDEX `stgteil_studygroup`,
+ ADD INDEX `stgteil_id` (`stgteil_id`),
+ ADD INDEX `studygroup_id_2` (`studygroup_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `mvv_stgteil`
+ DROP INDEX `fach_stgteil`,
+ ADD INDEX `fach_id` (`fach_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `mvv_stg_stgteil`
+ DROP INDEX `stgteil_studiengang`,
+ ADD INDEX `stgteil_id` (`stgteil_id`)";
+ DBManager::get()->exec($query);
+
+ $query = "ALTER TABLE `seminare`
+ DROP INDEX `status_mkdate_seminar`,
+ ADD INDEX `status` (`status`)";
+ DBManager::get()->exec($query);
+ }
+}