我已经有几个实体,但现在数据库中出现了一个新表,我只想在这一个表上生成一个实体。
我已经看到了,但我还有其他问题。
我已经有一个用户实体(和一个数据库表(。现在,新表称为"报告"(现在没有实体,我想创建它(,它有一个外键给用户。还有一些外键。
如果我按照上述答案中的建议进行操作,那就是:
$ 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.php
和 User.php~
中的备份,如果您正在使用版本控制并且喜欢在不考虑太多的情况下git add src/
,则应小心。 您不希望将这些文件添加到源代码管理中。
无论哪种方式,都会创建备份,您应该在此基础上使用版本控制,因此您应该没问题。