2011-11-08 66 views
1

如何刪除Doctrine 2中的實體?我想知道如何通過命令行和PHP來做到這一點。謝謝!如何刪除Doctrine 2中的實體?

編輯: 我不知道我是否正確地問這個問題(我是新學說)。我想將Entity文件保留在目錄中,但我想從數據庫中刪除它的表。這源自基於Zend的模塊化體系結構,其中可以在不移除模塊目錄的情況下安裝/卸載模塊。如果一個模塊被卸載,我想刪除它的實體。相反的情況也是如此。

回答

0

我做了一些尋找到學說的API,並最終想通了:

$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); 

這將刪除從數據庫實體\ MyEntity1,2,3和4相關的表。

此外,使用上述完全相同的代碼,除了最後一行,下面的方法是有用的:

$st->createSchema($classes); 

$st->updateSchema($classes); 

你可以找到主義的文檔中的所有信息:

http://www.doctrine-project.org/projects/orm/2.0/api

0

據我所知,沒有辦法做到這一點。您必須手動刪除關聯的數據庫表。

如果您想從實體生成過程中排除它,您可以從實體中刪除\ ORM註釋。