Skip to content

Commit 524c2ce

Browse files
committed
fix purge without foreign check on mariadb (doctrine/dbal:^4.0)
1 parent 39a2fb2 commit 524c2ce

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/Bridge/Doctrine/Purger/Purger.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Doctrine\Common\DataFixtures\Purger\ORMPurger as DoctrineOrmPurger;
1818
use Doctrine\Common\DataFixtures\Purger\PHPCRPurger as DoctrinePhpCrPurger;
1919
use Doctrine\Common\DataFixtures\Purger\PurgerInterface as DoctrinePurgerInterface;
20+
use Doctrine\DBAL\Platforms\MariaDBPlatform;
2021
use Doctrine\DBAL\Platforms\MySqlPlatform;
2122
use Doctrine\ODM\MongoDB\DocumentManager as DoctrineMongoDocumentManager;
2223
use Doctrine\ODM\PHPCR\DocumentManager as DoctrinePhpCrDocumentManager;
@@ -93,7 +94,7 @@ public function purge(): void
9394
$disableFkChecks = (
9495
$this->purger instanceof DoctrineOrmPurger
9596
&& in_array($this->purgeMode->getValue(), [PurgeMode::createDeleteMode()->getValue(), PurgeMode::createTruncateMode()->getValue()])
96-
&& $this->purger->getObjectManager()->getConnection()->getDatabasePlatform() instanceof MySqlPlatform
97+
&& $this->doesDatabaseSupportTruncate()
9798
);
9899

99100
if ($disableFkChecks) {
@@ -136,4 +137,12 @@ private static function createPurger(ObjectManager $manager, ?PurgeMode $purgeMo
136137
)
137138
);
138139
}
140+
141+
private function doesDatabaseSupportTruncate(): bool
142+
{
143+
$platform = $this->purger->getObjectManager()->getConnection()->getDatabasePlatform();
144+
145+
return $platform instanceof MySqlPlatform
146+
|| $platform instanceof MariaDBPlatform;
147+
}
139148
}

0 commit comments

Comments
 (0)