Issue #3119017 by Gábor Hojtsy, effulgentsia, catch, daffie: Tests fail with MariaDB 10.2.7, but not 10.3.22
parent
0a65cd6076
commit
79cca074cd
|
@ -188,7 +188,22 @@ abstract class Tasks {
|
|||
*/
|
||||
protected function checkEngineVersion() {
|
||||
// Ensure that the database server has the right version.
|
||||
if ($this->minimumVersion() && version_compare(Database::getConnection()->version(), $this->minimumVersion(), '<')) {
|
||||
// We append '-AnyName' to the minimum version for comparison purposes, so
|
||||
// that engines that append a package name or other build information to
|
||||
// their version strings still pass. For example, MariaDB might report its
|
||||
// version as '10.2.7-MariaDB' or '10.2.7+maria' or similar.
|
||||
// version_compare() treats '-' and '+' as equivalent, and non-numeric
|
||||
// parts other than conventional stability specifiers (dev, alpha, beta,
|
||||
// etc.) as equal to each other and less than numeric parts and stability
|
||||
// specifiers. In other words, 10.2.7-MariaDB, 10.2.7+maria, and
|
||||
// 10.2.7-AnyName are all equal to each other and less than 10.2.7-alpha.
|
||||
// This means that by appending '-AnyName' for the comparison check, that
|
||||
// alpha and other pre-release versions of the minimum will pass this
|
||||
// check, which isn't ideal; however, people running pre-release versions
|
||||
// of database servers should know what they're doing, whether Drupal warns
|
||||
// them or not.
|
||||
// @see https://www.php.net/manual/en/function.version-compare.php
|
||||
if ($this->minimumVersion() && version_compare(Database::getConnection()->version(), $this->minimumVersion() . '-AnyName', '<')) {
|
||||
$this->fail(t("The database server version %version is less than the minimum required version %minimum_version.", ['%version' => Database::getConnection()->version(), '%minimum_version' => $this->minimumVersion()]));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue