Skip to content

[TMP] IBX-12043: Upgraded to Doctrine DBAL 4 - #35

Open
ViniTou wants to merge 2 commits into
6.0from
dbal-4-upgrade
Open

[TMP] IBX-12043: Upgraded to Doctrine DBAL 4#35
ViniTou wants to merge 2 commits into
6.0from
dbal-4-upgrade

Conversation

@ViniTou

@ViniTou ViniTou commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
🎫 Issue IBX-12043

Related PRs:

Important

The [TMP] commit pins ibexa/core and ibexa/doctrine-schema to their dbal-4-upgrade branches. Revert it once those PRs merge.

Description:

ibexa/test-core pinned doctrine/dbal to 3.x and every package's integration tests boot its kernel, so it has to move before any of them can.

  • platform_service is gone. DBAL 4 removed the platform connection parameter that DoctrineBundle's platform_service sets — deprecated in doctrine-bundle 2.9 for the same reason. doctrine.php no longer parses DATABASE_URL to pick an Ibexa platform per scheme. This never failed loudly: the connection accepted the setting and returned the stock platform anyway, so the Ibexa platform was already being dropped silently. DDL-generating call sites now resolve it explicitly through DbPlatformFactory ([TMP] IBX-12043: Upgraded to Doctrine DBAL 4 core#800).
  • setEventManager() calls dropped from SqliteDbPlatform and PostgreSqlDbPlatform; DBAL 4 removed the event system.
  • The fixture schema importer gets $defaultTableOptions: DefaultTableOptions::AS_ARRAY. DBAL 4 no longer fills in a character set and collation for MySQL, so tables generated for tests would otherwise disagree with the ones an installation gets, and MySQL rejects joins between character columns whose collations differ.

For QA:

Test infrastructure only. Worth confirming a downstream package's integration tests still boot against MySQL, MariaDB and PostgreSQL.

Documentation:

N/A

@ViniTou ViniTou changed the title IBX-12043: Upgrade to Doctrine DBAL 4 [TMP] IBX-12043: Upgraded to Doctrine DBAL 4 Aug 7, 2026
@ViniTou
ViniTou force-pushed the dbal-4-upgrade branch 2 times, most recently from 2d0c4e1 to 2697943 Compare August 7, 2026 11:19
DBAL 4 removed the event system and the "platform" connection parameter, so the test kernel can no longer call setEventManager() on Ibexa's platforms or attach them via DoctrineBundle's platform_service.

LegacySchemaImporter now takes the default table options so integration suites generate the same DDL an installation does. Without them the schema built for tests took the server's character set and collation while a real install states its own, which is how a collation mismatch reached production unnoticed.
Points ibexa/core, ibexa/doctrine-schema at their dbal-4-upgrade branches so this one can resolve before they are merged. Revert this commit once they are.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant