Skip to content

Commit 284a005

Browse files
committed
fix: normalize database version strings in admin dashboard
MySQL/MariaDB's version() includes distribution suffixes like "-MariaDB-0+deb12u2", and PostgreSQL's version() returns a full platform description. Trim these to display clean version numbers. - MySQL/MariaDB: strip everything after the first "-" - PostgreSQL: use SHOW server_version instead of SELECT version(), which returns a clean semver string without platform info - SQLite: unchanged (already returns a clean version)
1 parent ecdeaba commit 284a005

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

framework/core/src/Foundation/ApplicationInfoProvider.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ public function identifyDatabaseVersion(): string
7373
// Cache for 24 hours since the database version rarely changes
7474
return $this->cache->remember('flarum:db_version', 86400, function () {
7575
return match ($this->config['database.driver']) {
76-
'mysql', 'mariadb', 'pgsql' => $this->db->selectOne('select version() as version')->version,
76+
// Strip distribution suffix (e.g. "10.11.14-MariaDB-0+deb12u2" → "10.11.14")
77+
'mysql', 'mariadb' => Str::before($this->db->selectOne('select version() as version')->version, '-'),
78+
// SHOW server_version returns a clean version (e.g. "15.3"), unlike SELECT version() which includes platform info
79+
'pgsql' => Str::before($this->db->selectOne('show server_version')->server_version, ' '),
7780
'sqlite' => $this->db->selectOne('select sqlite_version() as version')->version,
7881
default => 'Unknown',
7982
};

0 commit comments

Comments
 (0)