Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deleting table using Doctrine2 and Symfony2

How can I delete table using Doctrine2 and Symfony2? I've generated entities and updated schema, now I want to delete this structure.

like image 854
pamil Avatar asked Jul 27 '12 13:07

pamil


3 Answers

Not sure if I understood your question correctly. You deleted an entity and want to delete also its generated table from database? If so:

You can't do it, because Doctrine2 only cares about tables it knows - that means the ones that are represented by Entities. Since you deleted some Entity from your application, Doctrine no longer thinks the table belongs to your application. There are situations when there are different tables of different applications in the same database. It wouldn't make sense if Doctrine deleted them just because it doesn't know anything about them. It would be racist... but against tables.

If you just want to drop tables programmatically, you can use raw query. As far as I know, Doctrine doesn't have any method for dropping tables. Or as an alternative, you can do it by hand.

like image 157
Ondrej Slinták Avatar answered Nov 03 '22 22:11

Ondrej Slinták


You can do a raw sql.

For example in a Symfony2 controller:

$em = $this->getDoctrine()->getManager();
$sql = 'DROP TABLE hereYourTableName;';
$connection = $em->getConnection();
$stmt = $connection->prepare($sql);
$stmt->execute();
$stmt->closeCursor();
like image 6
Hokusai Avatar answered Nov 04 '22 00:11

Hokusai


Just delete the tables which you are no longer using manually...Doctrine totally ignores unmapped tables.

like image 3
Lusitanian Avatar answered Nov 03 '22 22:11

Lusitanian