从 symfony 4 中彻底删除实体

Posted

技术标签:

【中文标题】从 symfony 4 中彻底删除实体【英文标题】:Completely delete Entity from symfony 4 【发布时间】:2019-06-15 15:43:46 【问题描述】:

我正在学习 Symfony 4,并且刚刚遵循了有关数据库和学说的指南,我现在有了一个新实体 Product.php 和一个关联的存储库 ProductRepository.php 以及数据库中的一个新表。我现在想删除这个实体/存储库并相应地更新数据库。

我想我可以简单地删除 Product.php 并运行 php bin/console make:migration:diff

但是,没有任何改变。是否有一些简单的命令列表来删除实体的所有引用(我看不到配置文件中的任何更改 - 我正在使用注释)或者我是否必须确定创建/修改了哪些文件,然后手动删除桌子。

【问题讨论】:

php bin/console make:migration:diff 生成迁移比较数据库和您的信息。 php bin/console doctrine:migrations:migrate 将执行迁移。 幸运的是,php bin/console make:migration:diff 不会删除不在实体中的表。想象一下,您有未在要保留的实体中使用的表。 Deleting table using Doctrine2 and Symfony2的可能重复 【参考方案1】:

您可以手动删除这些文件:

    src/Entity/Product.php src/Repository/ProductRepository.php

如果您为您的 Product 实体生成了 CRUD,则必须删除:

    src/Form/ProductType.php src/Controller/ProductController.php templates/product(产品文件夹)

如果您在生产环境中,则必须运行 php bin/console cache:clear 来删除缓存。

在更新您的数据库架构之前请三思。要更新,请运行 php bin/console d:s:u --force - 但请注意 prod 环境中的含义。

【讨论】:

请不要建议在生产环境中运行doctrine:schema:update 我们不知道他是否真的在生产环境中!我只想明确一点,即使我们清除缓存,数据库架构也不会改变 :-) 但是你说“如果你在生产环境中(...)清除缓存(...)。然后运行模式更新” - 这听起来像是在生产中运行这些命令的建议环境

以上是关于从 symfony 4 中彻底删除实体的主要内容,如果未能解决你的问题,请参考以下文章

怎么彻底删除安装的sql2014

如何彻底删除SVN中的文件和文件夹

markdown 从Git的中彻底删除大文件

如何彻底删除SVN中的文件和文件夹

如何彻底删除SVN中的文件和文件夹

eclipse如何彻底删除项目?