From 7310ecd886b708435b9f37109d025f0231aec526 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 25 Aug 2024 12:50:24 +0200 Subject: [PATCH 1/2] Allow specifying the redis database index to be used --- CHANGELOG.md | 17 +++++++++++++++++ composer.json | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c953b99ec..5e5a57ae9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com), and this project adheres to [Semantic Versioning](https://semver.org). +## [Unreleased] +### Added +* [#2183](https://github.com/shlinkio/shlink/issues/2183) Redis database index to be used can now be specified in the connection URI path, and Shlink will honor it. + +### Changed +* *Nothing* + +### Deprecated +* *Nothing* + +### Removed +* *Nothing* + +### Fixed +* *Nothing* + + ## [4.2.0] - 2024-08-11 ### Added * [#2120](https://github.com/shlinkio/shlink/issues/2120) Add new IP address condition for the dynamic rules redirections system. diff --git a/composer.json b/composer.json index 08c945576..eadb894f6 100644 --- a/composer.json +++ b/composer.json @@ -44,7 +44,7 @@ "pagerfanta/core": "^3.8", "ramsey/uuid": "^4.7", "shlinkio/doctrine-specification": "^2.1.1", - "shlinkio/shlink-common": "^6.2", + "shlinkio/shlink-common": "dev-main#f97703b as 6.3", "shlinkio/shlink-config": "^3.0", "shlinkio/shlink-event-dispatcher": "^4.1", "shlinkio/shlink-importer": "^5.3.2", From 187c17319a5f564addc5b6b5bd8d5b8b5fc2ce1d Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Mon, 26 Aug 2024 09:44:13 +0200 Subject: [PATCH 2/2] Take all Postgres platform classes into consideration --- composer.json | 4 ++-- .../Core/src/Visit/Listener/OrphanVisitsCountTracker.php | 7 ++++--- .../Core/src/Visit/Listener/ShortUrlVisitsCountTracker.php | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index eadb894f6..d6fb9d715 100644 --- a/composer.json +++ b/composer.json @@ -20,9 +20,9 @@ "ext-pdo": "*", "akrabat/ip-address-middleware": "^2.1", "cakephp/chronos": "^3.0.2", - "doctrine/dbal": "^4.0", + "doctrine/dbal": "^4.1", "doctrine/migrations": "^3.6", - "doctrine/orm": "^3.0", + "doctrine/orm": "^3.2", "endroid/qr-code": "^5.0", "friendsofphp/proxy-manager-lts": "^1.0", "geoip2/geoip2": "^3.0", diff --git a/module/Core/src/Visit/Listener/OrphanVisitsCountTracker.php b/module/Core/src/Visit/Listener/OrphanVisitsCountTracker.php index 157d587e0..a673f19e5 100644 --- a/module/Core/src/Visit/Listener/OrphanVisitsCountTracker.php +++ b/module/Core/src/Visit/Listener/OrphanVisitsCountTracker.php @@ -58,9 +58,10 @@ private function trackVisitCount(EntityManagerInterface $em, object $entity): vo $conn = $em->getConnection(); $platformClass = $conn->getDatabasePlatform(); - match ($platformClass::class) { - PostgreSQLPlatform::class => $this->incrementForPostgres($conn, $isBot), - SQLitePlatform::class, SQLServerPlatform::class => $this->incrementForOthers($conn, $isBot), + match (true) { + $platformClass instanceof PostgreSQLPlatform => $this->incrementForPostgres($conn, $isBot), + $platformClass instanceof SQLitePlatform || $platformClass instanceof SQLServerPlatform + => $this->incrementForOthers($conn, $isBot), default => $this->incrementForMySQL($conn, $isBot), }; } diff --git a/module/Core/src/Visit/Listener/ShortUrlVisitsCountTracker.php b/module/Core/src/Visit/Listener/ShortUrlVisitsCountTracker.php index f62ddb3df..0ab8d393b 100644 --- a/module/Core/src/Visit/Listener/ShortUrlVisitsCountTracker.php +++ b/module/Core/src/Visit/Listener/ShortUrlVisitsCountTracker.php @@ -64,9 +64,10 @@ private function trackVisitCount(EntityManagerInterface $em, object $entity): vo $conn = $em->getConnection(); $platformClass = $conn->getDatabasePlatform(); - match ($platformClass::class) { - PostgreSQLPlatform::class => $this->incrementForPostgres($conn, $shortUrlId, $isBot), - SQLitePlatform::class, SQLServerPlatform::class => $this->incrementForOthers($conn, $shortUrlId, $isBot), + match (true) { + $platformClass instanceof PostgreSQLPlatform => $this->incrementForPostgres($conn, $shortUrlId, $isBot), + $platformClass instanceof SQLitePlatform || $platformClass instanceof SQLServerPlatform + => $this->incrementForOthers($conn, $shortUrlId, $isBot), default => $this->incrementForMySQL($conn, $shortUrlId, $isBot), }; }