Я пытаюсь сгенерировать данные базы данных с помощью соответствующей доктрины Symfony DataFixture.
Если я загружаю данные несколько раз, выполняя это:
php bin/console doctrine:fixtures:load
Он очищает мою базу данных и генерирует данные заново. Однако это не сбрасывает значения автоинкремента.
Если я запускаю эту команду с параметром --purge-with-truncate, она делает именно это, но затем я получаю жалобу на ограничения внешнего ключа:
$ php bin/console doctrine:fixtures:load --env=test -n --purge-with-truncate
> purging database
In AbstractMySQLDriver.php line 68:
An exception occurred while executing 'TRUNCATE property':
SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint (`my_db_name`.`user_property`, CONSTRAINT `fk_property_name` FOREIGN KEY (`propert
y_name`) REFERENCES `my_db_name`.`property` (`name`))
Так что да, конечно, я добавил зависимости, когда создавал свои приборы в трех разных классах. Свойство UserProperty зависит как от пользователя, так и от свойства.
Поэтому я реализовал DependentFixtureInterface, добавив следующий метод в мой класс UserPropertyFixtures:
public function getDependencies()
{
return [
UserFixtures::class,
PropertyFixtures::class,
];
}
Я что-то упустил или это никогда не работало?
Есть ли другая опция для сброса значений автоинкремента?