我用php app/console doctrine:generate:entities
编写了一些类并在DB上生成了相关的表
突然间,我明白我做错了什么,我把一些东西改成了类:有三个类(A、B、C),其中A连接到B,C是独立的(目前)),但我的模式必须将A连接到C。所以我以一致的方式修改了所有类,并启动了php app/console doctrine:schema:update --force
。
非常惊讶的是,我注意到DB并没有发生任何变化
这怎么可能呢?条令有没有一个文件,他缓存了什么或类似的东西?
p.S.:实体之间的关系是多对多
如果您更改一些行,您可以通过键入来查看将执行哪些请求
doctrine:schema:update --dump-sql
如果条令没有看到您的修改,请尝试重新启动apache或清理APC缓存。上次我有这个奇怪的bug时,它帮了我一把。当然,如果你删除或添加一个字段,教条会看到的!
您是否尝试使用更新的实体生成一个新的数据库来检查它们是否正确?一个简单的方法是更改parameters.ini
文件上的数据库名称,然后再次运行生成数据库的控制台命令:
app/console doctrine:database:create
app/console doctrine:schema:create
如果新数据库不正确,则说明您的实体有问题。如何定义它们(YAML、XML或注释)?我使用YAML,有时doctrine:generate:entities
操作不能很好地工作。当这种情况发生时,我必须删除我的PHP实体并再次运行该命令。
除此之外,请查看条令文件,并确保您正确地按照拥有方和相反方的规则定义了您的关联。