diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /db/migrations/6.0.3_adjust_cache_configuration.php | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'db/migrations/6.0.3_adjust_cache_configuration.php')
| -rw-r--r-- | db/migrations/6.0.3_adjust_cache_configuration.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/db/migrations/6.0.3_adjust_cache_configuration.php b/db/migrations/6.0.3_adjust_cache_configuration.php new file mode 100644 index 0000000..2432e84 --- /dev/null +++ b/db/migrations/6.0.3_adjust_cache_configuration.php @@ -0,0 +1,38 @@ +<?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 system configuration'; + } + + protected function up() + { + foreach (self::MAPPING as $old => $new) { + self::replaceCache($old, $new); + } + } + + protected function down() + { + foreach (self::MAPPING as $old => $new) { + self::replaceCache($new, $old); + } + } + + private function replaceCache(string $old, string $new): void + { + $query = "UPDATE `config_values` + SET `value` = JSON_REPLACE(`value`, '$.type', ?) + WHERE `field` = 'SYSTEMCACHE' + AND JSON_CONTAINS(`value`, JSON_QUOTE(?), '$.type')"; + DBManager::get()->execute($query, [$new, $old]); + } +}; |
