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

时间:2016-02-05 13:54:26

标签: php symfony doctrine-orm symfony-2.3

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

我已经看过this,但我还有其他问题。

我已经有了一个User实体(和一个db表)。现在,新表名为“Report”(现在没有实体,我想创建它)并且它有一个用户的外键。还有一些外键。

如果我按照上面的答案做了建议,那就是:

$ 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

Doctrine生成器会尝试修改我的用户实体吗?或者只是创建一个报告实体?

顺便说一下。我理解(?),这不会,因为这是ManyToOne关系,但让我们暂时假设这是ManyToMany片刻。

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

在运行此命令之前,我没有想过要进行备份。

所以,我有点害怕...现在我创建了一个备份,但我不确定这是否有助于遇到麻烦。

1 个答案:

答案 0 :(得分:1)

这取决于/Resources/config/doctrine目录。如果将其清空并执行您描述的命令,则只会修改Report实体。如果您在该目录中拥有所有以前的映射,那么它也应该修改User实体。

这些命令会自动为您创建实体的备份,因此您将在User.php中拥有一个新的User.php~和一个备份,如果您使用的是版本控制,则需要注意git add src/没有考虑太多。您不希望将这些文件添加到源代码管理中。

无论哪种方式,都会创建备份,你应该使用版本控制,所以你应该没问题。