如何在Symfony2项目中删除实体类

Got*_*bel 4 php data-modeling symfony doctrine-orm

最初设计项目时,我们有几个实体到目前为止尚未使用(并且我们不打算在不久的将来实现它们)。嗯,我想从我的项目中删除它们。我将这样进行(手动执行所有步骤):

  1. 从我当前使用的实体中删除所有关系。
  2. 删除doctrime ORM文件 src/Resources/config/doctrine
  3. 从中删除类PHP文件 src/Entity
  4. 从数据库中删除表

我想知道的是:是否有任何例程(例如控制台命令)可以支持此过程?例如,如果我跑步

php app/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)

删除所有关系并删除文件后,得到删除相应表的SQL语句吗?

use*_*662 6

从代码中删除实体后,可以使用以下控制台命令删除表:

php bin/console doctrine:schema:update --complete --dump-sql
Run Code Online (Sandbox Code Playgroud)

注意该--complete选项的使用。


以下是doctrine:schema:update帮助文本中的相关部分:

选项:

--complete        如果定义,则将删除数据库中与当前元数据无关的所有资产。
[...]

救命:

[...]

最后,要注意,如果该--complete选项被传递,这个任务将下降是所有数据库资产(如表等)当前元数据描述的。换句话说,如果没有此选项,则此任务将保留数据库中存在但未由任何元数据描述的任何“额外”表。

提示:如果您的数据库包含的表不应由ORM管理,则可以使用DBAL功能在全局级别上过滤表和序列:

$config->setFilterSchemaAssetsExpression($regexp);
Run Code Online (Sandbox Code Playgroud)


Jav*_*ñez 2

您删除实体的步骤没问题。

您无法从 Doctrine 中删除表,因为 Doctrine 并不知道它。看看这个问题:

使用 Doctrine2 和 Symfony2 删除表