Symfony test: очень долгое очищение БД в режиме truncate

Symfony 3.4, бд mysql.

Перед каждым тестом очищаю базу данных, чтобы залить только необходимыми значениями. Использую truncate, чтобы сбросить счетчики инкрементации ID.

Перед каждым тестом запускаю следующий код:

$em = $this->getEntityManager();
$em->getConnection()->exec('SET FOREIGN_KEY_CHECKS = 0;');
$purger = new ORMPurger($em);
$purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE);
$purger->purge();
$em->getConnection()->exec('SET FOREIGN_KEY_CHECKS = 1;');

Однако данный участок выполнятся 10-20 секунд, что как то многовато для каждого теста.

Но если удалить $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); то очищение будет через delete и гораздо быстрее. Примерно 100мс.

Как уменьшить время выполнения скрипта, или какой другой способ чистки БД?


Ответы (0 шт):