Как удалить сущности в Доктрине 2? - PullRequest
1 голос
/ 09 ноября 2011

Как удалить сущности в Доктрине 2?Я хочу знать, как сделать это через командную строку и с помощью PHP.Спасибо!

Редактировать: Я не уверен, правильно ли я задаю этот вопрос (я новичок в Доктрине).Я хочу оставить файл Entity в каталоге, но хочу удалить его таблицу из базы данных.Это связано с модульной архитектурой на основе Zend, где модули можно устанавливать / удалять без удаления каталога модулей.Если модуль удален, я хочу удалить его объекты.Обратное тоже верно.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

Я немного изучил API Doctrine и в конце концов понял:

$classes = array();
$entityManager = ...
$classes[] = $entityManager->getClassMetadata('Entities\MyEntity1');
$classes[] = $entityManager->getClassMetadata('Entities\MyEntity2');
$classes[] = $entityManager->getClassMetadata('Entities\MyEntity3');
$classes[] = $entityManager->getClassMetadata('Entities\MyEntity4');

//Doctrine Schema Tool
$st = new Doctrine\ORM\Tools\SchemaTool( $entityManager );
$st->dropSchema($classes);

Это удалит таблицы, связанные с Entities \ MyEntity1, 2, 3 и 4, из базы данных.

Кроме того, используя точно такой же код выше, за исключением последней строки, полезны следующие методы:

$st->createSchema($classes);

И

$st->updateSchema($classes);

Вы можете найти всю информацию в документации Доктрины:

http://www.doctrine -project.org / проекты / ОРМ / 2,0 / апи

0 голосов
/ 18 ноября 2011

Насколько я знаю, нет способа сделать это.Вы должны вручную удалить связанные таблицы базы данных.

Вы можете просто удалить аннотацию \ ORM из сущности, если хотите исключить ее из процесса генерации сущности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...