chore: run MariaDB 11.8 in ddev to match production
Development ran MySQL 8.4 while production runs MariaDB, so nothing engine-specific was ever exercised on the engine it ships on. DATABASE_URL carries serverVersion=mariadb-* now, which is what makes DBAL pick its MariaDB platform. This matters most for the test environment: it reads DATABASE_URL from the committed .env and not from .env.dev.local, so a MySQL version there had the suite running on MySQL84Platform against a MariaDB server - and schema:validate reporting every nullable and every json column as drift. With the platform right, a db_test built from the mapping is in sync. The post-start hooks create db_test and grant the db user, which ddev does not do on its own, and sync the schema from the entity mapping. Without them the first test run after a fresh start fails on the missing database. The remaining changes in config.yaml are ddev's own regeneration of the commented reference section. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -27,7 +27,10 @@ APP_SECRET=b3cb0285aea14bbffb57df0cc3aa84f4
|
||||
# DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=8.0.32&charset=utf8mb4"
|
||||
# DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
|
||||
# DATABASE_URL="postgresql://app:[email protected]:5432/app?serverVersion=15&charset=utf8"
|
||||
DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=8.4.5&charset=utf8mb4"
|
||||
# ddev runs MariaDB to match production. The serverVersion is what makes DBAL pick its
|
||||
# MariaDB platform - left at a MySQL version it speaks MySQL to a MariaDB server, and the
|
||||
# test suite then runs against a different platform than production.
|
||||
DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=mariadb-11.8.9&charset=utf8mb4"
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
###> symfony/messenger ###
|
||||
|
||||
Reference in New Issue
Block a user