- π¬π§United Kingdom catch
It's not clear that this is affecting anyone apart from one particularly large hosting provider, and I imagine they've worked around it by now otherwise a lot of sites would still be on 9.3, so downgrading.
#3284502: [regression] Drupal 9.4 breaks BC via incorrect autoloading of \Drupal\Driver\* overrides of core db drivers β fixed this same regression when $databases is read from settings.php. However, there are two other places where Drupal needs to decide which namespace to use for a given driver:
drupal_get_database_types()
, which is called during the installation step of selecting your database type and entering your database credentials, when you don't already have a settings.php file with $databases defined.Database::convertDbUrlToConnectionInfo()
, which is called when you're using a database connection URL instead of the $databases variable in settings.php. For example, for running tests or console commands where a database URL is provided as an environment variable or command line argument.Just like in that other issue, in both of the above places, Drupal 9.3 prioritized the \Drupal\Driver\* implementation (if the site has one) ahead of the core implementation. However, as part of Drupal 9.4 moving the core implementations into core modules, they are now getting prioritized ahead of the \Drupal\Driver\* implementation.
composer require drupal/mysql56:@dev
MYSQL_MINIMUM_VERSION
constant in core/modules/mysql/src/Driver/Database/mysql/Install/Tasks.php
to a higher version than what you have.Desired behavior: Installation proceeds normally, because the driver in vendor/drupal/mysql56 is used.
Actual behavior: Installation fails with a your database version is too low message, because the driver in core/modules/mysql is used.
Workaround: Manually add a sites/default/settings.php where you add all your database connection info to the $databases variable, including setting 'namespace' => 'Drupal\\Driver\\Database\\mysql'
, and rerun the installer.
Restore BC with Drupal 9.3 by only for the 3 core drivers, checking for a \Drupal\Driver\* override and use that if available.
Needs work
9.5
The change is currently missing an automated test that fails when run with the original code, and succeeds when the bug has been fixed.
Not all content is available!
It's likely this issue predates Contrib.social: some issue and comment data are missing.
It's not clear that this is affecting anyone apart from one particularly large hosting provider, and I imagine they've worked around it by now otherwise a lot of sites would still be on 9.3, so downgrading.