我已经有一些实体,但现在一个新表出现在数据库中,我想在这一个表上生成一个实体。
我已经看过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/
目录,这有帮助。
在运行此命令之前,我没有想过要进行备份。
所以,我有点害怕...现在我创建了一个备份,但我不确定这是否有助于遇到麻烦。
答案 0 :(得分:1)
这取决于/Resources/config/doctrine
目录。如果将其清空并执行您描述的命令,则只会修改Report
实体。如果您在该目录中拥有所有以前的映射,那么它也应该修改User
实体。
这些命令会自动为您创建实体的备份,因此您将在User.php
中拥有一个新的User.php~
和一个备份,如果您使用的是版本控制,则需要注意git add src/
没有考虑太多。您不希望将这些文件添加到源代码管理中。
无论哪种方式,都会创建备份,你应该使用版本控制,所以你应该没问题。