On March 30th, the latest doctrine/dbal version 2.13.0 was released which apparently introduced breaking changes.
When installing OXID eShop the regular way, doctrine/dbal was limited in OXID-eSales/oxideshop_ce only according to the major dependencies (everything bigger v2.5.13 but within v2.x.x is allowed). Additional dependencies have been defined afterwards in OXID-eSales/oxideshop_metapackage_ce. That means, if you entirely refuse the usage of metapackages, you might see the following effects:
The communication with the database is completely broken, and that’s why you will see maintenance mode in store front as well as in admin panel. Additionally, in our tests, we saw the following error message in the shop’s error log:
OXID Logger.ERROR: Argument 1 passed to OxidEsales\EshopCommunity\Core\Database\Adapter\Doctrine\ResultSet::__construct() must implement interface Doctrine\DBAL\Driver\Statement, instance of Doctrine\DBAL\ForwardCompatibility\Result given, called in /var/www/oxideshop/source/Core/Database/Adapter/Doctrine/Database.php on line 611
Who is affected
- everybody to refuse the usage of metapackages or
- everybody who build up their own repositories with component OXID-eSales/oxideshop_ce < 6.7.0
You are save if
- you use metapackages or
- use the component OXID-eSales/oxideshop_ce >= 6.7.0 for your own repositories
We fixed this behaviour by limiting doctrine/dbal version to < 2.13.0 in OXID eShop component OXID-eSales/oxideshop_ce v6.7.0, which is used in OXID eShop compilations v6.2.4 and v6.3.0 (to be released soon).
In doubt, you can check doctrine/dbal version simply with
composer show doctrine/dbal (or just take a look at your composer.lock file 😉 )