Closed arnaud-lb closed 5 years ago
This is not fixable: as per https://github.com/doctrine/orm/commit/1587aac4ff6b0753ddd5f8b8d4558b6b40096057, this is required for Joined Table Inheritance and OneToMany associations in orphanRemoval
.
Since the GTID consistency is a niche, I'm gonna mark this as "can't fix". If an alternate approach (to 1587aac4ff6b0753ddd5f8b8d4558b6b40096057) is needed, then we'd need that first.
This is not fixable: as per 1587aac, this is required for Joined Table Inheritance and OneToMany associations in
orphanRemoval
.Since the GTID consistency is a niche, I'm gonna mark this as "can't fix". If an alternate approach (to 1587aac) is needed, then we'd need that first.
Not a niche any more. Azure (and others) require enforced gtid compliance for replication (e.g. geo-replication for HA).
@KVestergaard open a new issue please: this is 4 years old, and the context may have changed.
Bug Report
Summary
OneToManyPersister uses
CREATE TEMPORARY TABLE
when removing orphaned collections, which is not allowed in MySQL when using global transaction IDs.Global transaction IDs is a feature that makes operating MySQL much easier when using replication. It is enabled server-wide. I suspect that it is very common that this feature is enabled on production servers.
Current behavior
When a OneToMany full collection is replaced, the following exception occurs:
Full trace here: https://gist.github.com/arnaud-lb/31b20963b01ff2ccc8b1bcd5f75fc461