From 5e8078fb03c442b9069613e6df3b75d265993bc3 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Tue, 14 May 2024 07:42:16 +0000 Subject: [PATCH] fixes #4141 Closes #4141 Merge request studip/studip!2983 --- .../6.0.4_adjust_cache_types_table.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 db/migrations/6.0.4_adjust_cache_types_table.php diff --git a/db/migrations/6.0.4_adjust_cache_types_table.php b/db/migrations/6.0.4_adjust_cache_types_table.php new file mode 100644 index 00000000000..dfe0b27466d --- /dev/null +++ b/db/migrations/6.0.4_adjust_cache_types_table.php @@ -0,0 +1,37 @@ +<?php +return new class extends Migration +{ + private const MAPPING = [ + StudipDbCache::class => Studip\Cache\DbCache::class, + StudipFileCache::class => Studip\Cache\FileCache::class, + StudipMemcachedCache::class => Studip\Cache\MemcachedCache::class, + StudipRedisCache::class => Studip\Cache\RedisCache::class, + ]; + + public function description() + { + return 'Replaces the renamed cache classes in table "cache_types"'; + } + + protected function up() + { + foreach (self::MAPPING as $old => $new) { + self::updateCacheTypesTable($old, $new); + } + } + + protected function down() + { + foreach (self::MAPPING as $old => $new) { + self::updateCacheTypesTable($new, $old); + } + } + + private function updateCacheTypesTable(string $old, string $new): void + { + $query = "UPDATE `cache_types` + SET `class_name` = ? + WHERE `class_name` = ?"; + DBManager::get()->execute($query, [$new, $old]); + } +}; -- GitLab