From c7e9f664e2279769d820b57150686701907ac306 Mon Sep 17 00:00:00 2001 From: Marvin Flock Date: Wed, 23 Apr 2025 17:48:42 +0200 Subject: [PATCH] fix: remove ignore flag from adding licence fields, implement proper check for fields --- .../com_sportsmanager/database/update.php | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index ba31051..b39b2d4 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5209,16 +5209,36 @@ function updateDatabase(): void } if ($datenbank_version < 102) { - $query = "ALTER IGNORE TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse"; + $query = $db->getQuery(true) + ->select('COUNT(*)') + ->from('INFORMATION_SCHEMA.COLUMNS') + ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste'))) + ->where('COLUMN_NAME = ' . $db->quote('lizenzen')); $db->setQuery($query); - if (!$db->execute()) { - die($db->stderr(true)); + $exists = (bool)$db->loadResult(); + + if (!$exists) { + $query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } } - $query = "ALTER IGNORE TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr"; + $query = $db->getQuery(true) + ->select('COUNT(*)') + ->from('INFORMATION_SCHEMA.COLUMNS') + ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler'))) + ->where('COLUMN_NAME = ' . $db->quote('lizenz')); $db->setQuery($query); - if (!$db->execute()) { - die($db->stderr(true)); + $exists = (bool)$db->loadResult(); + + if (!$exists) { + $query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } } $query = "UPDATE #__sportsmanager_einstellungen"