cache schema version better
This commit is contained in:
parent
22ae284db4
commit
a1ca62af50
|
@ -107,8 +107,9 @@ class Config {
|
|||
private static $instance;
|
||||
|
||||
private $params = [];
|
||||
private $schema_version = null;
|
||||
|
||||
public static function get_instance() {
|
||||
public static function get_instance() : Config {
|
||||
if (self::$instance == null)
|
||||
self::$instance = new self();
|
||||
|
||||
|
@ -133,6 +134,20 @@ class Config {
|
|||
}
|
||||
}
|
||||
|
||||
static function get_schema_version(bool $nocache = false) {
|
||||
return self::get_instance()->_schema_version($nocache);
|
||||
}
|
||||
|
||||
function _schema_version(bool $nocache = false) {
|
||||
if (empty($this->schema_version) || $nocache) {
|
||||
$row = Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch();
|
||||
|
||||
$this->schema_version = (int) $row["schema_version"];
|
||||
}
|
||||
|
||||
return $this->schema_version;
|
||||
}
|
||||
|
||||
static function cast_to(string $value, int $type_hint) {
|
||||
switch ($type_hint) {
|
||||
case self::T_BOOL:
|
||||
|
|
|
@ -12,8 +12,7 @@ class DbUpdater {
|
|||
}
|
||||
|
||||
function get_schema_version() {
|
||||
$row = $this->pdo->query("SELECT schema_version FROM ttrss_version")->fetch();
|
||||
return (int) $row['schema_version'];
|
||||
return Config::get_schema_version(true);
|
||||
}
|
||||
|
||||
function is_update_required() {
|
||||
|
|
|
@ -334,7 +334,7 @@ class Feeds extends Handler_Protected {
|
|||
/* we don't need those */
|
||||
|
||||
foreach (["date_entered", "guid", "last_published", "last_marked", "tag_cache", "favicon_avg_color",
|
||||
"uuid", "label_cache", "yyiw"] as $k)
|
||||
"uuid", "label_cache", "yyiw", "num_enclosures"] as $k)
|
||||
unset($line[$k]);
|
||||
|
||||
array_push($reply['content'], $line);
|
||||
|
|
|
@ -137,7 +137,7 @@ class Prefs {
|
|||
/** @var PDO */
|
||||
private $pdo;
|
||||
|
||||
public static function get_instance() {
|
||||
public static function get_instance() : Prefs {
|
||||
if (self::$instance == null)
|
||||
self::$instance = new self();
|
||||
|
||||
|
|
|
@ -53,11 +53,9 @@ class RSSUtils {
|
|||
}
|
||||
|
||||
static function update_daemon_common($limit = null, $options = []) {
|
||||
$schema_version = get_schema_version();
|
||||
|
||||
if (!$limit) $limit = Config::get(Config::DAEMON_FEED_LIMIT);
|
||||
|
||||
if ($schema_version != SCHEMA_VERSION) {
|
||||
if (get_schema_version() != SCHEMA_VERSION) {
|
||||
die("Schema version is wrong, please upgrade the database.\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -166,8 +166,6 @@
|
|||
define('SELF_USER_AGENT', 'Tiny Tiny RSS/' . get_version() . ' (http://tt-rss.org/)');
|
||||
ini_set('user_agent', SELF_USER_AGENT);
|
||||
|
||||
$schema_version = false;
|
||||
|
||||
/* compat shims */
|
||||
|
||||
function _debug($msg) {
|
||||
|
@ -306,13 +304,7 @@
|
|||
}
|
||||
|
||||
function get_schema_version() {
|
||||
$pdo = Db::pdo();
|
||||
|
||||
$row = $pdo->query("SELECT schema_version FROM ttrss_version")->fetch();
|
||||
$version = $row["schema_version"];
|
||||
$schema_version = $version;
|
||||
|
||||
return $version;
|
||||
return Config::get_schema_version();
|
||||
}
|
||||
|
||||
function file_is_locked($filename) {
|
||||
|
|
|
@ -19,25 +19,10 @@
|
|||
ini_set("session.gc_maxlifetime", $session_expire);
|
||||
ini_set("session.cookie_lifetime", "0");
|
||||
|
||||
function session_get_schema_version() {
|
||||
global $schema_version;
|
||||
|
||||
if (!$schema_version) {
|
||||
$row = \Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch();
|
||||
|
||||
$version = $row["schema_version"];
|
||||
|
||||
$schema_version = $version;
|
||||
return $version;
|
||||
} else {
|
||||
return $schema_version;
|
||||
}
|
||||
}
|
||||
|
||||
function validate_session() {
|
||||
if (\Config::get(\Config::SINGLE_USER_MODE)) return true;
|
||||
|
||||
if (isset($_SESSION["ref_schema_version"]) && $_SESSION["ref_schema_version"] != session_get_schema_version()) {
|
||||
if (isset($_SESSION["ref_schema_version"]) && $_SESSION["ref_schema_version"] != \Config::get_schema_version()) {
|
||||
$_SESSION["login_error_msg"] =
|
||||
__("Session failed to validate (schema version changed)");
|
||||
return false;
|
||||
|
|
|
@ -145,9 +145,7 @@
|
|||
}
|
||||
|
||||
if (!isset($options['update-schema'])) {
|
||||
$schema_version = get_schema_version();
|
||||
|
||||
if ($schema_version != SCHEMA_VERSION) {
|
||||
if (get_schema_version() != SCHEMA_VERSION) {
|
||||
die("Schema version is wrong, please upgrade the database (--update-schema).\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -188,9 +188,7 @@
|
|||
"Maybe another daemon is already running.\n");
|
||||
}
|
||||
|
||||
$schema_version = get_schema_version();
|
||||
|
||||
if ($schema_version != SCHEMA_VERSION) {
|
||||
if (get_schema_version() != SCHEMA_VERSION) {
|
||||
die("Schema version is wrong, please upgrade the database.\n");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue