-- ------------------------------------------
-- Friendica 2021.12-rc (Siberian Iris)
--- DB_UPDATE_VERSION 1445
+-- DB_UPDATE_VERSION 1446
-- ------------------------------------------
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);
*/
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;
}
}
+ /**
+ * 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
*
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1445);
+ define('DB_UPDATE_VERSION', 1446);
}
return [
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;
+}
\ No newline at end of file