summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-04-14 15:21:10 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-04-14 15:21:10 +0300
commit7e403aae92166de6e83a5ab39738ea8ffe6eb713 (patch)
treec6714eb8b826d8eae6cba141634b9a7e8f26cd80
parentb154bc7a10e46dc9fa0406996507c4fd410366da (diff)
further mysql/DB_TYPE related cleanup
-rw-r--r--.docker/app/Dockerfile1
-rw-r--r--classes/Config.php7
-rw-r--r--classes/Db.php2
-rw-r--r--classes/Db_Migrations.php2
-rw-r--r--plugins/af_psql_trgm/init.php91
5 files changed, 34 insertions, 69 deletions
diff --git a/.docker/app/Dockerfile b/.docker/app/Dockerfile
index 9ca767608..786179bd5 100644
--- a/.docker/app/Dockerfile
+++ b/.docker/app/Dockerfile
@@ -91,7 +91,6 @@ ENV TTRSS_XDEBUG_ENABLED=""
ENV TTRSS_XDEBUG_HOST=""
ENV TTRSS_XDEBUG_PORT="9000"
-ENV TTRSS_DB_TYPE="pgsql"
ENV TTRSS_DB_HOST="db"
ENV TTRSS_DB_PORT="5432"
diff --git a/classes/Config.php b/classes/Config.php
index f8f9aaa18..1921796db 100644
--- a/classes/Config.php
+++ b/classes/Config.php
@@ -18,13 +18,16 @@ class Config {
*
* or config.php:
*
- * putenv('TTRSS_DB_TYPE=pgsql');
+ * putenv('TTRSS_DB_HOST=my-patroni.example.com');
*
* note lack of quotes and spaces before and after "=".
*
*/
- /** database type: pgsql */
+ /** this is kept for backwards/plugin compatibility, the only supported database is PostgreSQL
+ *
+ * @deprecated could be replaced with default (and only) value: `pgsql`
+ */
const DB_TYPE = "DB_TYPE";
/** database server hostname */
diff --git a/classes/Db.php b/classes/Db.php
index 92bbec8b4..6310d11e3 100644
--- a/classes/Db.php
+++ b/classes/Db.php
@@ -27,7 +27,7 @@ class Db {
$db_port = Config::get(Config::DB_PORT) ? ';port=' . Config::get(Config::DB_PORT) : '';
$db_host = Config::get(Config::DB_HOST) ? ';host=' . Config::get(Config::DB_HOST) : '';
- return Config::get(Config::DB_TYPE) . ':dbname=' . Config::get(Config::DB_NAME) . $db_host . $db_port;
+ return 'pgsql:dbname=' . Config::get(Config::DB_NAME) . $db_host . $db_port;
}
// this really shouldn't be used unless a separate PDO connection is needed
diff --git a/classes/Db_Migrations.php b/classes/Db_Migrations.php
index 62619b377..33bc64a32 100644
--- a/classes/Db_Migrations.php
+++ b/classes/Db_Migrations.php
@@ -23,7 +23,7 @@ class Db_Migrations {
}
function initialize(string $root_path, string $migrations_table, bool $base_is_latest = true, int $max_version_override = 0): void {
- $this->base_path = "$root_path/" . Config::get(Config::DB_TYPE);
+ $this->base_path = "$root_path/pgsql";
$this->migrations_path = $this->base_path . "/migrations";
$this->migrations_table = $migrations_table;
$this->base_is_latest = $base_is_latest;
diff --git a/plugins/af_psql_trgm/init.php b/plugins/af_psql_trgm/init.php
index 28a0ab933..5832320e8 100644
--- a/plugins/af_psql_trgm/init.php
+++ b/plugins/af_psql_trgm/init.php
@@ -63,41 +63,22 @@ class Af_Psql_Trgm extends Plugin {
print "<p>$title</p>";
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $sth = $this->pdo->prepare("SELECT ttrss_entries.id AS id,
- feed_id,
- ttrss_entries.title AS title,
- updated, link,
- ttrss_feeds.title AS feed_title,
- SIMILARITY(ttrss_entries.title, :title) AS sm
- FROM
- ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = feed_id)
- WHERE
- ttrss_entries.id = ref_id AND
- ttrss_user_entries.owner_uid = :owner_uid AND
- ttrss_entries.id != :id AND
- date_entered >= NOW() - INTERVAL '2 weeks'
- ORDER BY
- sm DESC, date_entered DESC
- LIMIT 10");
- } else {
- $sth = $this->pdo->prepare("SELECT ttrss_entries.id AS id,
- feed_id,
- ttrss_entries.title AS title,
- updated, link,
- ttrss_feeds.title AS feed_title,
- (MATCH (ttrss_entries.title) AGAINST (:title) / LENGTH(ttrss_entries.title)) AS sm
- FROM
- ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = feed_id)
- WHERE
- ttrss_entries.id = ref_id AND
- ttrss_user_entries.owner_uid = :owner_uid AND
- ttrss_entries.id != :id AND
- date_entered >= DATE_SUB(NOW(), INTERVAL 2 WEEK)
- ORDER BY
- sm DESC, date_entered DESC
- LIMIT 10");
- }
+ $sth = $this->pdo->prepare("SELECT ttrss_entries.id AS id,
+ feed_id,
+ ttrss_entries.title AS title,
+ updated, link,
+ ttrss_feeds.title AS feed_title,
+ SIMILARITY(ttrss_entries.title, :title) AS sm
+ FROM
+ ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = feed_id)
+ WHERE
+ ttrss_entries.id = ref_id AND
+ ttrss_user_entries.owner_uid = :owner_uid AND
+ ttrss_entries.id != :id AND
+ date_entered >= NOW() - INTERVAL '2 weeks'
+ ORDER BY
+ sm DESC, date_entered DESC
+ LIMIT 10");
$sth->execute(['title' => $title, "owner_uid" => $owner_uid, "id" => $id]);
@@ -157,12 +138,10 @@ class Af_Psql_Trgm extends Plugin {
title="<i class='material-icons'>extension</i> <?= __('Mark similar articles as read (af_psql_trgm)') ?>">
<?php
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $res = $this->pdo->query("select 'similarity'::regproc");
+ $res = $this->pdo->query("select 'similarity'::regproc");
- if (!$res || !$res->fetch()) {
- print_error("pg_trgm extension not found.");
- }
+ if (!$res || !$res->fetch()) {
+ print_error("pg_trgm extension not found.");
} ?>
<form dojoType="dijit.form.Form">
@@ -190,11 +169,7 @@ class Af_Psql_Trgm extends Plugin {
name="similarity" value="<?= htmlspecialchars($similarity) ?>">
<div dojoType='dijit.Tooltip' connectId='psql_trgm_similarity' position='below'>
- <?php if (Config::get(Config::DB_TYPE) == "pgsql") { ?>
- <?= __("PostgreSQL trigram extension returns string similarity as a floating point number (0-1). Setting it too low might produce false positives, zero disables checking.") ?>
- <?php } else { ?>
- <?= __("Setting this value too low might produce false positives, zero disables checking.") ?>
- <?php } ?>
+ <?= __("PostgreSQL trigram extension returns string similarity as a floating point number (0-1). Setting it too low might produce false positives, zero disables checking.") ?>
</div>
</fieldset>
@@ -283,10 +258,8 @@ class Af_Psql_Trgm extends Plugin {
function hook_article_filter($article) {
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $res = $this->pdo->query("select 'similarity'::regproc");
- if (!$res || !$res->fetch()) return $article;
- }
+ $res = $this->pdo->query("select 'similarity'::regproc");
+ if (!$res || !$res->fetch()) return $article;
$enable_globally = $this->host->get($this, "enable_globally");
@@ -336,21 +309,11 @@ class Af_Psql_Trgm extends Plugin {
return $article;
} */
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $sth = $this->pdo->prepare("SELECT MAX(SIMILARITY(title, :title)) AS ms
- FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id AND
- date_entered >= NOW() - interval '1 day' AND
- guid != :guid AND
- owner_uid = :uid");
- } else {
- $sth = $this->pdo->prepare("SELECT (MATCH(title) AGAINST (:title) / LENGTH(title)) AS ms
- FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id AND
- date_entered >= DATE_SUB(NOW(), INTERVAL 1 DAY) AND
- guid != :guid AND
- owner_uid = :uid
- ORDER BY ms DESC
- LIMIT 1");
- }
+ $sth = $this->pdo->prepare("SELECT MAX(SIMILARITY(title, :title)) AS ms
+ FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id AND
+ date_entered >= NOW() - interval '1 day' AND
+ guid != :guid AND
+ owner_uid = :uid");
$sth->execute(['title' => $title_escaped, 'guid' => $entry_guid, 'uid' => $owner_uid]);