From 8cbb8f89aded027141c08f1cdcbe4ee4756a527a Mon Sep 17 00:00:00 2001 From: Vincent Touzet Date: Sun, 26 May 2019 16:14:00 +0200 Subject: [PATCH] [Messenger] Disable the SchemaAssetsFilter when setup the transport --- .../Transport/Doctrine/ConnectionTest.php | 3 +++ .../Transport/Doctrine/Connection.php | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php index 8c4e8fcce9cc..1196be9f081e 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php @@ -108,7 +108,10 @@ private function getDBALConnectionMock() $platform = $this->getMockBuilder(AbstractPlatform::class) ->getMock(); $platform->method('getWriteLockSQL')->willReturn('FOR UPDATE'); + $configuration = $this->getMockBuilder(\Doctrine\DBAL\Configuration::class) + ->getMock(); $driverConnection->method('getDatabasePlatform')->willReturn($platform); + $driverConnection->method('getConfiguration')->willReturn($configuration); return $driverConnection; } diff --git a/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php b/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php index 7011295ee81e..bd528b5b431b 100644 --- a/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php +++ b/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php @@ -197,7 +197,25 @@ public function reject(string $id): bool public function setup(): void { + $configuration = $this->driverConnection->getConfiguration(); + // Since Doctrine 2.9 the getFilterSchemaAssetsExpression is deprecated + $hasFilterCallback = method_exists($configuration, 'getSchemaAssetsFilter'); + + if ($hasFilterCallback) { + $assetFilter = $this->driverConnection->getConfiguration()->getSchemaAssetsFilter(); + $this->driverConnection->getConfiguration()->setSchemaAssetsFilter(null); + } else { + $assetFilter = $this->driverConnection->getConfiguration()->getFilterSchemaAssetsExpression(); + $this->driverConnection->getConfiguration()->setFilterSchemaAssetsExpression(null); + } + $this->schemaSynchronizer->updateSchema($this->getSchema(), true); + + if ($hasFilterCallback) { + $this->driverConnection->getConfiguration()->setSchemaAssetsFilter($assetFilter); + } else { + $this->driverConnection->getConfiguration()->setFilterSchemaAssetsExpression($assetFilter); + } } public function getMessageCount(): int