diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index cc412052..b162f252 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -6,7 +6,6 @@ use Crater\Http\Requests\DatabaseEnvironmentRequest; use Crater\Http\Requests\DiskEnvironmentRequest; use Crater\Http\Requests\DomainEnvironmentRequest; use Crater\Http\Requests\MailEnvironmentRequest; -use Crater\Http\Requests\PaymentSettingsRequest; use Exception; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -195,10 +194,7 @@ class EnvironmentManager switch ($connection) { case 'mysql': - $dbSupportInfo = $checker->checkMysqlVersion( - $conn, - config('crater.min_mysql_version') - ); + $dbSupportInfo = $checker->checkMysqlVersion($conn); break; diff --git a/app/Space/RequirementsChecker.php b/app/Space/RequirementsChecker.php index a463d8d1..48d808f4 100755 --- a/app/Space/RequirementsChecker.php +++ b/app/Space/RequirementsChecker.php @@ -2,6 +2,7 @@ namespace Crater\Space; +use Illuminate\Support\Str; use PDO; use SQLite3; @@ -122,10 +123,16 @@ class RequirementsChecker * * @return array */ - public function checkMysqlVersion($conn, string $minMysqlVersion = null) + public function checkMysqlVersion($conn) { - $minVersionMysql = $minMysqlVersion; + $version_info = $conn->getAttribute(PDO::ATTR_SERVER_VERSION); + + $isMariaDb = Str::contains($version_info, 'MariaDB'); + + $minVersionMysql = $isMariaDb ? config('crater.min_mariadb_version') : config('crater.min_mysql_version'); + $currentMysqlVersion = $this->getMysqlVersionInfo($conn); + $supported = false; if (version_compare($currentMysqlVersion, $minVersionMysql) >= 0) { @@ -148,9 +155,11 @@ class RequirementsChecker */ private static function getMysqlVersionInfo($pdo) { - $currentVersion = $pdo->getAttribute(PDO::ATTR_SERVER_VERSION); + $version = $pdo->query('select version()')->fetchColumn(); - return $currentVersion; + preg_match("/^[0-9\.]+/", $version, $match); + + return $match[0]; } /** diff --git a/config/crater.php b/config/crater.php index 72edb960..9e251f2d 100644 --- a/config/crater.php +++ b/config/crater.php @@ -3,24 +3,30 @@ return [ /* - * Minimum php version of the application. + * Minimum php version. */ 'min_php_version' => '7.4.0', /* - * Minimum mysql version of the application. + * Minimum mysql version. */ 'min_mysql_version' => '5.7.7', /* - * Minimum pgsql version of the application. + * Minimum mariadb version. + */ + + 'min_mariadb_version' => '10.2.7', + + /* + * Minimum pgsql version. */ 'min_pgsql_version' => '9.2.0', /* - * Minimum sqlite version of the application. + * Minimum sqlite version. */ 'min_sqlite_version' => '3.24.0',