AnisimovAM
@AnisimovAM
Программист

Как очистить данные во всех таблицах, не удаляя базу и схему базы?

Добрый день.

Проект большой. Более 350 запросов при выполненнии команды doctrine:schema:create (выполняется более минуты, а 500 сценариев будут выполняться более 500 минут).
В тестах требуется после выполнения сценария пересоздавать фикстуры. Но если не удалить базу, то счетчик первичных ключей не сбрасывается. Поэтому не получится запрашивать данные по id (так как он после каждого теста меняется).

Для примера такой запрос GET /api/article/1 (получение статьи по id). Если тест с таким запросом запустится первым, то статья с таким id существует и тест успешно выполняется.

Если этот запрос будет выполнен после какого-либо другого сценария, то статьи с id=1 в базе уже не будет, так как при загрузки фикстур таблицы очистятся, но счетчик первичного ключа нет.

Выполнение команды php app/console doctrine:fixtures:load --purge-with-truncate -e=test (с очисткой счетчика первичных ключей) выдает ошибку из-за связей между сущностями.

Как можно выполнить команду php app/console doctrine:fixtures:load --purge-with-truncate -e=test, не получая ошибку SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint ?
  • Вопрос задан
  • 851 просмотр
Решения вопроса 1
AnisimovAM
@AnisimovAM Автор вопроса
Программист
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы