Migrate distributed cache config value
This commit is contained in:
parent
b4c1fb0d9c
commit
6ca5668ac1
5 changed files with 37 additions and 7 deletions
|
@ -1,6 +1,6 @@
|
|||
-- ------------------------------------------
|
||||
-- Friendica 2021.12-rc (Siberian Iris)
|
||||
-- DB_UPDATE_VERSION 1445
|
||||
-- DB_UPDATE_VERSION 1446
|
||||
-- ------------------------------------------
|
||||
|
||||
|
||||
|
|
|
@ -96,8 +96,8 @@ class ConfigFileLoader
|
|||
public function setupCache(Cache $config, array $server = [], bool $raw = false)
|
||||
{
|
||||
// Load static config files first, the order is important
|
||||
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_FILE);
|
||||
$config->load($this->loadStaticConfig('settings'), Cache::SOURCE_FILE);
|
||||
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_STATIC);
|
||||
$config->load($this->loadStaticConfig('settings'), Cache::SOURCE_STATIC);
|
||||
|
||||
// try to load the legacy config first
|
||||
$config->load($this->loadLegacyConfig('htpreconfig'), Cache::SOURCE_FILE);
|
||||
|
|
|
@ -31,14 +31,16 @@ use ParagonIE\HiddenString\HiddenString;
|
|||
*/
|
||||
class Cache
|
||||
{
|
||||
/** @var int Indicates that the cache entry is a default value - Lowest Priority */
|
||||
const SOURCE_STATIC = 0;
|
||||
/** @var int Indicates that the cache entry is set by file - Low Priority */
|
||||
const SOURCE_FILE = 0;
|
||||
const SOURCE_FILE = 1;
|
||||
/** @var int Indicates that the cache entry is set by the DB config table - Middle Priority */
|
||||
const SOURCE_DB = 1;
|
||||
const SOURCE_DB = 2;
|
||||
/** @var int Indicates that the cache entry is set by a server environment variable - High Priority */
|
||||
const SOURCE_ENV = 3;
|
||||
/** @var int Indicates that the cache entry is fixed and must not be changed */
|
||||
const SOURCE_FIX = 4;
|
||||
const SOURCE_FIX = 5;
|
||||
|
||||
/** @var int Default value for a config source */
|
||||
const SOURCE_DEFAULT = self::SOURCE_FILE;
|
||||
|
@ -113,6 +115,19 @@ class Cache
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the source value of the current, cached config value
|
||||
*
|
||||
* @param string $cat Config category
|
||||
* @param string $key Config key
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getSource(string $cat, string $key): int
|
||||
{
|
||||
return $this->source[$cat][$key] ?? -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value in the config cache. Accepts raw output from the config table
|
||||
*
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
use Friendica\Database\DBA;
|
||||
|
||||
if (!defined('DB_UPDATE_VERSION')) {
|
||||
define('DB_UPDATE_VERSION', 1445);
|
||||
define('DB_UPDATE_VERSION', 1446);
|
||||
}
|
||||
|
||||
return [
|
||||
|
|
15
update.php
15
update.php
|
@ -1070,3 +1070,18 @@ function update_1444()
|
|||
|
||||
return Update::SUCCESS;
|
||||
}
|
||||
|
||||
function update_1446()
|
||||
{
|
||||
$distributed_cache_driver_source = DI::config()->getCache()->getSource('system', 'distributed_cache_driver');
|
||||
$cache_driver_source = DI::config()->getCache()->getSource('system', 'cache_driver');
|
||||
|
||||
// In case the distributed cache driver is the default value, but the current cache driver isn't default,
|
||||
// we assume that the distributed cache driver should be the same as the current cache driver
|
||||
if ($distributed_cache_driver_source === \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC &&
|
||||
$cache_driver_source !== \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC) {
|
||||
DI::config()->set('system', 'distributed_cache_driver', DI::config()->get('system', 'cache_driver'));
|
||||
}
|
||||
|
||||
return Update::SUCCESS;
|
||||
}
|
Loading…
Reference in a new issue