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)
|
-- 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)
|
public function setupCache(Cache $config, array $server = [], bool $raw = false)
|
||||||
{
|
{
|
||||||
// Load static config files first, the order is important
|
// Load static config files first, the order is important
|
||||||
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_FILE);
|
$config->load($this->loadStaticConfig('defaults'), Cache::SOURCE_STATIC);
|
||||||
$config->load($this->loadStaticConfig('settings'), Cache::SOURCE_FILE);
|
$config->load($this->loadStaticConfig('settings'), Cache::SOURCE_STATIC);
|
||||||
|
|
||||||
// try to load the legacy config first
|
// try to load the legacy config first
|
||||||
$config->load($this->loadLegacyConfig('htpreconfig'), Cache::SOURCE_FILE);
|
$config->load($this->loadLegacyConfig('htpreconfig'), Cache::SOURCE_FILE);
|
||||||
|
|
|
@ -31,14 +31,16 @@ use ParagonIE\HiddenString\HiddenString;
|
||||||
*/
|
*/
|
||||||
class Cache
|
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 */
|
/** @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 */
|
/** @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 */
|
/** @var int Indicates that the cache entry is set by a server environment variable - High Priority */
|
||||||
const SOURCE_ENV = 3;
|
const SOURCE_ENV = 3;
|
||||||
/** @var int Indicates that the cache entry is fixed and must not be changed */
|
/** @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 */
|
/** @var int Default value for a config source */
|
||||||
const SOURCE_DEFAULT = self::SOURCE_FILE;
|
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
|
* Sets a value in the config cache. Accepts raw output from the config table
|
||||||
*
|
*
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
|
||||||
if (!defined('DB_UPDATE_VERSION')) {
|
if (!defined('DB_UPDATE_VERSION')) {
|
||||||
define('DB_UPDATE_VERSION', 1445);
|
define('DB_UPDATE_VERSION', 1446);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
15
update.php
15
update.php
|
@ -1070,3 +1070,18 @@ function update_1444()
|
||||||
|
|
||||||
return Update::SUCCESS;
|
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