aboutsummaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2022-12-07 10:56:30 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2022-12-07 10:56:30 +0000
commite160ba5fbe83c3a52f9b2f3619b84f4fc3daa9a9 (patch)
tree7e87be83f797c5f7c5a2c3c9b7426c91b95dedd8 /db
parent3d8cb20aef2c55cadd38dccc3f51128d7e357ecf (diff)
migrate from storing last visit dates of blubber threads in config_values to...
Closes #744 Merge request studip/studip!1219
Diffstat (limited to 'db')
-rw-r--r--db/migrations/5.1.37_migrate_blubber_user_config_to_object_user_visits.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/db/migrations/5.1.37_migrate_blubber_user_config_to_object_user_visits.php b/db/migrations/5.1.37_migrate_blubber_user_config_to_object_user_visits.php
new file mode 100644
index 0000000..69e7ea6
--- /dev/null
+++ b/db/migrations/5.1.37_migrate_blubber_user_config_to_object_user_visits.php
@@ -0,0 +1,66 @@
+<?php
+final class MigrateBlubberUserConfigToObjectUserVisits extends Migration
+{
+ public function description()
+ {
+ return 'Migrates the blubber visited entrires from config_values to user_entries';
+ }
+
+ protected function up()
+ {
+ $query = "SELECT `pluginid`
+ FROM `plugins`
+ WHERE `pluginclassname` = 'Blubber'";
+ $blubber_plugin_id = DBManager::get()->fetchColumn($query);
+
+ $query = "INSERT INTO `object_user_visits` (
+ `object_id`,
+ `user_id`,
+ `plugin_id`,
+ `visitdate`,
+ `last_visitdate`
+ )
+ SELECT SUBSTR(`field`, 23) AS `object_id`,
+ `range_id` AS `user_id`,
+ ? AS `plugin_id`,
+ `value` AS `visitdate`,
+ `value` AS `last_visitdate`
+ FROM `config_values`
+ WHERE `field` LIKE 'BLUBBERTHREAD\\_VISITED\\_%'";
+ DBManager::get()->execute($query, [$blubber_plugin_id]);
+
+ $query = "DELETE FROM `config_values`
+ WHERE `field` LIKE 'BLUBBERTHREAD\\_VISITED\\_%'";
+ DBManager::get()->exec($query);
+ }
+
+ protected function down()
+ {
+ $query = "SELECT `pluginid`
+ FROM `plugins`
+ WHERE `pluginclassname` = 'Blubber'";
+ $blubber_plugin_id = DBManager::get()->fetchColumn($query);
+
+ $query = "INSERT INTO `config_values` (
+ `field`,
+ `range_id`,
+ `value`,
+ `mkdate`,
+ `chdate`,
+ `comment`
+ )
+ SELECT CONCAT('BLUBBERTHREAD_VISITED_', `object_id`) AS `field`,
+ `user_id` AS `range_id`,
+ `visitdate` AS `value`,
+ UNIX_TIMESTAMP() AS `mkdate`,
+ UNIX_TIMESTAMP() AS `chdate`,
+ '' AS `comment`
+ FROM `object_user_visits`
+ WHERE `plugin_id` = ?";
+ DBManager::get()->execute($query, [$blubber_plugin_id]);
+
+ $query = "DELETE FROM `object_user_visits`
+ WHERE `plugin_id` = ?";
+ DBManager::get()->execute($query, [$blubber_plugin_id]);
+ }
+}