我该如何使用Doctrine2和Symfony2删除表格?我已经生成了实体并更新了模式,现在我想要删除这个结构。
不确定我是否正确理解了你的问题。你删除了一个实体,想要从数据库中删除生成的表吗?如果是这样:
您不能这样做,因为Doctrine2只关心它知道的表 - 也就是由实体表示的那些表。由于您从应用程序中删除了某些实体,Doctrine不再认为该表属于您的应用程序。在同一数据库中存在不同应用程序的不同表的情况下,如果Doctrine不知道这些表,则删除它们将毫无意义。这会是种族主义...但是针对表。
如果您只想以编程方式删除表,可以使用原始查询。据我所知,Doctrine没有任何删除表的方法。或者,您可以手动完成这项工作。
$em = $this->getDoctrine()->getManager();
$sql = 'DROP TABLE hereYourTableName;';
$connection = $em->getConnection();
$stmt = $connection->prepare($sql);
$stmt->execute();
$stmt->closeCursor();
只需手动删除不再使用的表格即可...Doctrine完全忽略未映射的表格。