Don't use transactions for statements with implicit commit

[MAILPOET-3926]
This commit is contained in:
Rostislav Wolny
2020-11-25 14:44:12 +01:00
committed by Veljko V
parent c0c9b11c54
commit 386f0c66b4
2 changed files with 10 additions and 17 deletions

View File

@ -2,7 +2,6 @@
namespace MailPoet\Doctrine;
use MailPoetVendor\Doctrine\DBAL\Connection;
use MailPoetVendor\Doctrine\ORM\EntityManager;
use MailPoetVendor\Doctrine\ORM\EntityRepository as DoctrineEntityRepository;
use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
@ -76,12 +75,10 @@ abstract class Repository {
$cmd = $this->entityManager->getClassMetadata($this->getEntityClassName());
$tableName = $cmd->getTableName();
$connection = $this->entityManager->getConnection();
$connection->transactional(function(Connection $connection) use ($tableName) {
$connection->query('SET FOREIGN_KEY_CHECKS=0');
$q = "TRUNCATE $tableName";
$connection->executeUpdate($q);
$connection->query('SET FOREIGN_KEY_CHECKS=1');
});
}
/**

View File

@ -59,11 +59,9 @@ array_map($destroy, $models);
$entityManager = ContainerWrapper::getInstance(WP_DEBUG)->get(EntityManager::class);
foreach ($entities as $entity) {
$tableName = $entityManager->getClassMetadata($entity)->getTableName();
$connection->transactional(function(Connection $connection) use ($tableName) {
$connection->query('SET FOREIGN_KEY_CHECKS=0');
$connection->executeUpdate("TRUNCATE $tableName");
$connection->query('SET FOREIGN_KEY_CHECKS=1');
});
}
// save plugin version to avoid running migrations (that cause $GLOBALS serialization errors)
@ -218,11 +216,9 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
$classMetadata = $this->entityManager->getClassMetadata($entityName);
$tableName = $classMetadata->getTableName();
$connection = $this->entityManager->getConnection();
$connection->transactional(function(Connection $connection) use ($tableName) {
$connection->query('SET FOREIGN_KEY_CHECKS=0');
$connection->executeUpdate("TRUNCATE $tableName");
$connection->query('SET FOREIGN_KEY_CHECKS=1');
});
}
}