Доктрина - удалить все сущности - PullRequest
0 голосов
/ 02 сентября 2018

У меня проблема с удалением всех строк в базе данных. Я не могу узнать, как это сделать. Я использую Symfony и Doctrine. Где-то я читал, что это не возможно "нормальным" способом, но я могу сделать это с помощью DQL (createQuery), но я не знаю синтаксис.

public function resetDatabase(EntityManagerInterface $em)
{
    $query = $em->createQuery('DELETE ???');
    $query->execute();

    return new Response('', Response::HTTP_OK);
}

Спасибо за любые советы

1 Ответ

0 голосов
/ 03 сентября 2018

Ой ... Я выяснил, как это сделать.

/**
* @Route("/resetdatabase")
*/    
public function resetDatabase(EntityManagerInterface $em)
{
    $repository = $em->getRepository(MoneyDatabase::class);
    $entities = $repository->findAll();

    foreach ($entities as $entity) {
        $em->remove($entity);
    }
    $em->flush();

    return new Response('', Response::HTTP_OK);
}

Но иногда он должен запускаться дважды, потому что каким-то образом через 30 секунд возвращаются сущности (но есть только обязательные столбцы, другие равны нулю). И после второго запуска он исчезнет полностью. Странно, что так бывает только иногда. Почему это вообще?

...