From db00308d68848031bb4bf4d18ec964c2d96e7155 Mon Sep 17 00:00:00 2001 From: Lewis Voncken Date: Sat, 6 Oct 2018 17:57:36 +0200 Subject: [PATCH] [BACKPORT] Use version_compare to compare version strings correctly --- .../Module/Plugin/DbStatusValidator.php | 2 +- .../Module/Plugin/DbStatusValidatorTest.php | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/internal/Magento/Framework/Module/Plugin/DbStatusValidator.php b/lib/internal/Magento/Framework/Module/Plugin/DbStatusValidator.php index 171f6f74515fd..6b6933d9dd2ce 100644 --- a/lib/internal/Magento/Framework/Module/Plugin/DbStatusValidator.php +++ b/lib/internal/Magento/Framework/Module/Plugin/DbStatusValidator.php @@ -122,7 +122,7 @@ private function getGroupedDbVersionErrors() (array)$allDbVersionErrors, function ($carry, $item) { if ($item[DbVersionInfo::KEY_CURRENT] === 'none' - || $item[DbVersionInfo::KEY_CURRENT] < $item[DbVersionInfo::KEY_REQUIRED] + || version_compare($item[DbVersionInfo::KEY_CURRENT], $item[DbVersionInfo::KEY_REQUIRED], '<') ) { $carry['version_too_low'][] = $item; } else { diff --git a/lib/internal/Magento/Framework/Test/Unit/Module/Plugin/DbStatusValidatorTest.php b/lib/internal/Magento/Framework/Test/Unit/Module/Plugin/DbStatusValidatorTest.php index c41918e051452..5027bfae606a6 100644 --- a/lib/internal/Magento/Framework/Test/Unit/Module/Plugin/DbStatusValidatorTest.php +++ b/lib/internal/Magento/Framework/Test/Unit/Module/Plugin/DbStatusValidatorTest.php @@ -157,35 +157,35 @@ public static function beforeDispatchOutOfDateWithErrorsDataProvider() [ DbVersionInfo::KEY_MODULE => 'Magento_Module4', DbVersionInfo::KEY_TYPE => 'data', - DbVersionInfo::KEY_CURRENT => '1.0.1', - DbVersionInfo::KEY_REQUIRED => '1.0.0' + DbVersionInfo::KEY_CURRENT => '1.0.10', + DbVersionInfo::KEY_REQUIRED => '1.0.9' ], ], 'expectedMessage' => "Please update your modules: " . "Run \"composer install\" from the Magento root directory.\n" . "The following modules are outdated:\n" - . "Magento_Module3 db schema version: defined in codebase - 1.0.0, currently installed - 2.0.0\n" - . "Magento_Module4 db data version: defined in codebase - 1.0.0, currently installed - 1.0.1", + . "Magento_Module3 schema: code version - 1.0.0, database version - 2.0.0\n" + . "Magento_Module4 data: code version - 1.0.9, database version - 1.0.10", ], 'some versions too high, some too low' => [ 'errors' => [ [ - DbVersionInfo::KEY_MODULE => 'Magento_Module1', + DbVersionInfo::KEY_MODULE => 'Magento_Module2', DbVersionInfo::KEY_TYPE => 'schema', - DbVersionInfo::KEY_CURRENT => '2.0.0', - DbVersionInfo::KEY_REQUIRED => '1.0.0' + DbVersionInfo::KEY_CURRENT => '1.9.0', + DbVersionInfo::KEY_REQUIRED => '1.12.0' ], [ - DbVersionInfo::KEY_MODULE => 'Magento_Module2', + DbVersionInfo::KEY_MODULE => 'Magento_Module1', DbVersionInfo::KEY_TYPE => 'schema', - DbVersionInfo::KEY_CURRENT => '1.0.0', - DbVersionInfo::KEY_REQUIRED => '2.0.0' + DbVersionInfo::KEY_CURRENT => '2.0.0', + DbVersionInfo::KEY_REQUIRED => '1.0.0' ], ], 'expectedMessage' => "Please update your modules: " . "Run \"composer install\" from the Magento root directory.\n" . "The following modules are outdated:\n" - . "Magento_Module1 db schema version: defined in codebase - 1.0.0, currently installed - 2.0.0" + . "Magento_Module1 schema: code version - 1.0.0, database version - 2.0.0" ] ]; }