代码之家  ›  专栏  ›  技术社区  ›  dialogik

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

  •  5
  • dialogik  · 技术社区  · 10 年前

    当我们最初设计我们的项目时,我们有几个实体到目前为止还未使用(我们不打算在不久的将来实现它们)。因此,我想从我的项目中删除它们。我将按以下方式继续(手动执行所有步骤):

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

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

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

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

    3 回复  |  直到 10 年前
        1
  •  6
  •   Sébastien    7 年前

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

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

    注意 --complete 选项


    以下是 doctrine:schema:update 帮助文本:

    选项:

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

    帮助:

    [...]

    最后,请注意,如果 --完成 选项时,此任务将删除 由当前元数据描述。换句话说,如果没有此选项,此任务将保留数据库中存在的任何“额外”表,但这些表未被任何元数据描述。

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

    $config->setFilterSchemaAssetsExpression($regexp);
    
        2
  •  3
  •   fingerman    7 年前

    要删除symfony 3中的表,只需运行迁移,未使用的表将从DB中删除:

    php bin/console doctrine:migrations:diff
    php bin/console doctrine:migrations:migrate
    
        3
  •  2
  •   Community George Stocker    7 年前

    删除实体的步骤正常。

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

    Deleting table using Doctrine2 and Symfony2