Doctrine/Symfony实体生成器和从一个表中生成实体


Doctrine/Symfony entity generator and generating entity from one table

我已经有几个实体,但现在数据库中出现了一个新表,我只想在这一个表上生成一个实体。

我已经看到了,但我还有其他问题。

我已经有一个用户实体(和一个数据库表(。现在,新表称为"报告"(现在没有实体,我想创建它(,它有一个外键给用户。还有一些外键。

如果我按照上述答案中的建议进行操作,那就是:

$ php app/console doctrine:mapping:import --force AppBundle xml --filter="Report"
$ php app/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Report"
$ php app/console doctrine:generate:entities AppBundle:Report --no-backup

教义生成器会尝试修改我的用户实体吗?还是只创建一个报表实体?

顺便说一句,我明白(?(,这不会,因为这是ManyToOne关系,但让我们暂时假设这是ManyToMany。

我知道我可以简单地尝试一下,但是上次我执行doctrine:mapping:import --force命令时,我最终得到了一个崩溃的应用程序,我花了很多时间来解决这个问题,直到 Stackoverflow 上的某人告诉我删除src'AppBundle/Resources/config/doctrine/目录,这很有帮助。

在运行此命令之前,我没有考虑进行备份。

所以,我有点害怕它...现在我创建了一个备份,但我不确定这是否会在出现问题时有所帮助。

这取决于

/Resources/config/doctrine目录。 如果将其清空并执行所描述的命令,则只会修改Report实体。 如果该目录中有所有以前的映射,则还应修改User实体。

这些命令将自动为您创建实体的备份,因此您将拥有一个新的User.phpUser.php~ 中的备份,如果您正在使用版本控制并且喜欢在不考虑太多的情况下git add src/,则应小心。 您不希望将这些文件添加到源代码管理中。

无论哪种方式,都会创建备份,您应该在此基础上使用版本控制,因此您应该没问题。