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

时间:2014-02-20 09:18:57

标签: php symfony doctrine-orm data-modeling

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

  1. 从我当前使用的实体中删除所有关系。
  2. 删除doctrime ORM文件src/Resources/config/doctrine
  3. src/Entity
  4. 删除类PHP文件
  5. 从数据库中删除表格
  6. 我想知道的是:是否有任何可能支持此过程的例程(例如控制台命令)?例如,如果我运行

    php app/console doctrine:schema:update --dump-sql
    

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

3 个答案:

答案 0 :(得分:4)

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

php bin/console doctrine:schema:update --complete --dump-sql

请注意使用--complete选项。

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

  

选项:

     
    

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

  
     

帮助

     
    

[...]

         

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

         

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

$config->setFilterSchemaAssetsExpression($regexp);
  

答案 1 :(得分:1)

删除实体的步骤没问题。

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

Deleting table using Doctrine2 and Symfony2

答案 2 :(得分:0)

要删除symfony 3中的表,您只需运行一次迁移即可从数据库中删除未使用的表:

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate