diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index bf419069870..eb5783e6507 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -349,10 +349,11 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.3" mysql-version: - "5.7" - "8.0" + - "9.0" extension: - "mysqli" - "pdo_mysql" @@ -363,18 +364,19 @@ jobs: php-version: "8.1" mysql-version: "8.0" extension: "mysqli" - - php-version: "8.2" + - php-version: "8.1" mysql-version: "8.0" extension: "mysqli" - - php-version: "8.3" + - php-version: "8.1" mysql-version: "8.0" extension: "pdo_mysql" - - php-version: "8.1" + # Workaround for https://bugs.mysql.com/114876 + - php-version: "8.3" mysql-version: "8.4" extension: "mysqli" custom-entrypoint: >- --entrypoint sh mysql:8.4 -c "exec docker-entrypoint.sh mysqld --mysql-native-password=ON" - - php-version: "8.1" + - php-version: "8.3" mysql-version: "8.4" extension: "pdo_mysql" custom-entrypoint: >- diff --git a/src/Driver/API/MySQL/ExceptionConverter.php b/src/Driver/API/MySQL/ExceptionConverter.php index 254489834f2..ad0f0e113a7 100644 --- a/src/Driver/API/MySQL/ExceptionConverter.php +++ b/src/Driver/API/MySQL/ExceptionConverter.php @@ -78,7 +78,8 @@ public function convert(Exception $exception, ?Query $query): DriverException 2002, 2005, 2054 => new ConnectionException($exception, $query), - 2006 => new ConnectionLost($exception, $query), + 2006, + 4031 => new ConnectionLost($exception, $query), 1048, 1121, 1138, diff --git a/src/Schema/AbstractAsset.php b/src/Schema/AbstractAsset.php index 5cbfa4746b7..de5b56f1d52 100644 --- a/src/Schema/AbstractAsset.php +++ b/src/Schema/AbstractAsset.php @@ -21,7 +21,8 @@ * The abstract asset allows to reset the name of all assets without publishing this to the public userland. * * This encapsulation hack is necessary to keep a consistent state of the database schema. Say we have a list of tables - * array($tableName => Table($tableName)); if you want to rename the table, you have to make sure + * array($tableName => Table($tableName)); if you want to rename the table, you have to make sure this does not get + * recreated during schema migration. */ abstract class AbstractAsset { diff --git a/tests/Driver/VersionAwarePlatformDriverTest.php b/tests/Driver/VersionAwarePlatformDriverTest.php index 380fa27889f..976585d0c0e 100644 --- a/tests/Driver/VersionAwarePlatformDriverTest.php +++ b/tests/Driver/VersionAwarePlatformDriverTest.php @@ -36,6 +36,8 @@ public static function mySQLVersionProvider(): array return [ ['5.7.0', MySQLPlatform::class], ['8.0.11', MySQL80Platform::class], + ['8.4.1', MySQL80Platform::class], + ['9.0.0', MySQL80Platform::class], ['5.5.40-MariaDB-1~wheezy', MariaDBPlatform::class], ['5.5.5-MariaDB-10.2.8+maria~xenial-log', MariaDBPlatform::class], ['10.2.8-MariaDB-10.2.8+maria~xenial-log', MariaDBPlatform::class],