5

Doctrine2とSymfony2を使用してテーブルを削除するにはどうすればよいですか?エンティティを生成してスキーマを更新しました。次に、この構造を削除します。

4

4 に答える 4

18

あなたの質問を正しく理解できたかどうかわかりません。エンティティを削除し、生成されたテーブルもデータベースから削除したいですか? もしそうなら:

Doctrine2 はそれが知っているテーブルのみを気にするため、それはできません。つまり、エンティティによって表されるテーブルを意味します。アプリケーションからいくつかのエンティティを削除したため、Doctrine はテーブルがアプリケーションに属しているとは見なしません。同じデータベースに異なるアプリケーションの異なるテーブルがある場合があります。それらについて何も知らないという理由だけで Doctrine がそれらを削除しても意味がありません。それは人種差別主義者だろう...しかし、テーブルに対して。

プログラムでテーブルを削除するだけの場合は、生のクエリを使用できます。私の知る限り、Doctrine にはテーブルを削除する方法がありません。または、別の方法として、手動で行うこともできます。

于 2012-07-27T14:51:56.487 に答える
6

生のSQLを実行できます。

たとえば、Symfony2 コントローラーでは次のようになります。

$em = $this->getDoctrine()->getManager();
$sql = 'DROP TABLE hereYourTableName;';
$connection = $em->getConnection();
$stmt = $connection->prepare($sql);
$stmt->execute();
$stmt->closeCursor();
于 2013-11-13T14:08:08.383 に答える
3

使用しなくなったテーブルを手動で削除するだけです...Doctrine はマップされていないテーブルを完全に無視します。

于 2012-07-27T14:19:30.757 に答える