diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2022-12-07 10:56:30 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2022-12-07 10:56:30 +0000 |
| commit | e160ba5fbe83c3a52f9b2f3619b84f4fc3daa9a9 (patch) | |
| tree | 7e87be83f797c5f7c5a2c3c9b7426c91b95dedd8 /db | |
| parent | 3d8cb20aef2c55cadd38dccc3f51128d7e357ecf (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.php | 66 |
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]); + } +} |
