Increase minimum MySQL version to 8.0.29 / MariaDB 10.5.12
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 12 May 2022 13:31:52 +0000 (15:31 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 12 May 2022 13:33:51 +0000 (15:33 +0200)
wcfsetup/install/files/acp/update_com.woltlab.wcf_5.5_checkSystemRequirements.php
wcfsetup/install/files/lib/acp/form/PackageEnableUpgradeOverrideForm.class.php
wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php
wcfsetup/install/files/lib/system/WCFSetup.class.php
wcfsetup/test.php

index dfc6db5a4185df7e115c9d191dcacf9a5c9432ee..6a42d30afde0b545cb9c2a707d9608363cc081ab 100644 (file)
@@ -32,3 +32,23 @@ if (\PHP_INT_SIZE != 8) {
 
     throw new \RuntimeException($message);
 }
+
+$sqlVersion = WCF::getDB()->getVersion();
+$compareSQLVersion = \preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $sqlVersion);
+if (\stripos($sqlVersion, 'MariaDB') !== false) {
+    $neededSqlVersion = '10.5.12';
+    $sqlFork = 'MariaDB';
+} else {
+    $sqlFork = 'MySQL';
+    $neededSqlVersion = '8.0.29';
+}
+
+if (!\version_compare($compareSQLVersion, $neededSqlVersion, '>=')) {
+    if (WCF::getLanguage()->getFixedLanguageCode() === 'de') {
+        $message = "Ihre {$sqlFork}-Version '{$sqlVersion}' ist unzureichend f&uuml;r die Installation dieser Software. {$sqlFork}-Version {$neededSqlVersion} oder h&ouml;her wird ben&ouml;tigt.";
+    } else {
+        $message = "Your {$sqlFork} version '{$sqlVersion}' is insufficient for installation of this software. {$sqlFork} version {$neededSqlVersion} or greater is required.";
+    }
+
+    throw new \RuntimeException($message);
+}
index cd0fc8631ca27546bf287286741f077adbb21e2f..e29d844132c9eb1e42b49c8ed44926c080e4a538 100644 (file)
@@ -89,15 +89,11 @@ final class PackageEnableUpgradeOverrideForm extends AbstractFormBuilderForm
         $sqlVersion = WCF::getDB()->getVersion();
         $compareSQLVersion = \preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $sqlVersion);
         if (\stripos($sqlVersion, 'MariaDB') !== false) {
-            $neededSqlVersion = '10.1.44';
+            $neededSqlVersion = '10.5.12';
             $sqlFork = 'MariaDB';
         } else {
             $sqlFork = 'MySQL';
-            if ($compareSQLVersion[0] === '5') {
-                $neededSqlVersion = '5.7.31';
-            } else {
-                $neededSqlVersion = '8.0.19';
-            }
+            $neededSqlVersion = '8.0.29';
         }
 
         if (!\version_compare($compareSQLVersion, $neededSqlVersion, '>=')) {
index 36db1aea85f752e57b119deddac02693ef237160..ab8af1f11f19006ec522876d7522dc7acee83786 100644 (file)
@@ -55,11 +55,10 @@ class SystemCheckPage extends AbstractPage
 
     public $mysqlVersions = [
         'mysql' => [
-            '5' => '5.7.31',
-            '8' => '8.0.19',
+            '8' => '8.0.29',
         ],
         'mariadb' => [
-            '10' => '10.1.44',
+            '10' => '10.5.12',
         ],
     ];
 
index f34ba175d5dabd207b1509362dbb3bd259f53971..7bcc2645f9575613ac3207176f1abb5e8ede2b33 100644 (file)
@@ -727,7 +727,7 @@ class WCFSetup extends WCF
 
                         // work-around for older MySQL versions that don't know utf8mb4
                         case 1115:
-                            throw new SystemException("Insufficient MySQL version. Version '5.7.31' or greater is needed.");
+                            throw new SystemException("Insufficient MySQL version. Version '8.0.29' or greater is needed.");
                             break;
 
                         default:
@@ -739,18 +739,12 @@ class WCFSetup extends WCF
                 $sqlVersion = $db->getVersion();
                 $compareSQLVersion = \preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $sqlVersion);
                 if (\stripos($sqlVersion, 'MariaDB')) {
-                    if (!(\version_compare($compareSQLVersion, '10.1.44') >= 0)) {
-                        throw new SystemException("Insufficient MariaDB version '" . $compareSQLVersion . "'. Version '10.1.44' or greater is needed.");
+                    if (!(\version_compare($compareSQLVersion, '10.5.12') >= 0)) {
+                        throw new SystemException("Insufficient MariaDB version '" . $compareSQLVersion . "'. Version '10.5.12' or greater is needed.");
                     }
                 } else {
-                    if ($compareSQLVersion[0] === '8') {
-                        // MySQL 8.0.19+
-                        if (!(\version_compare($compareSQLVersion, '8.0.19') >= 0)) {
-                            throw new SystemException("Insufficient MySQL version '" . $compareSQLVersion . "'. Version '5.7.31' or greater, or version '8.0.19' or greater is needed.");
-                        }
-                    } elseif (!(\version_compare($compareSQLVersion, '5.7.31') >= 0)) {
-                        // MySQL 5.7.31+
-                        throw new SystemException("Insufficient MySQL version '" . $compareSQLVersion . "'. Version '5.7.31' or greater, or version '8.0.19' or greater is needed.");
+                    if (!(\version_compare($compareSQLVersion, '8.0.29') >= 0)) {
+                        throw new SystemException("Insufficient MySQL version '" . $compareSQLVersion . "'. Version '8.0.29' or greater is needed.");
                     }
                 }
 
index 3226f0b3c3002b54b5153ca8b04f9517bc729071..bc039058d4ce754291eda2e809820506c4627539 100644 (file)
@@ -267,8 +267,8 @@ $phrases = [
                'en' => 'MySQL Requirements'
        ],
        'mysql_version' => [
-               'de' => 'Bitte stellen Sie sicher, dass MySQL 5.7.31+/MySQL 8.0.19+  oder MariaDB 10.1.44+ mit InnoDB-Unterstützung vorhanden ist.',
-               'en' => 'Please make sure that MySQL 5.7.31+/MySQL 8.0.19+ or MariaDB 10.1.44+, with InnoDB support is available.'
+               'de' => 'Bitte stellen Sie sicher, dass MySQL 8.0.29+  oder MariaDB 10.5.12+ mit InnoDB-Unterstützung vorhanden ist.',
+               'en' => 'Please make sure that MySQL 8.0.29+ or MariaDB 10.5.12+, with InnoDB support is available.'
        ],
        'result' => [
                'de' => 'Ergebnis',