我写了一些类并使用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。:实体之间的关系是多对多的
答案 0 :(得分:0)
如果您更改了某些行,您可以通过输入以下内容来查看将执行哪些请求:
doctrine:schema:update --dump-sql
如果doctrine没有看到您的修改,请尝试重新启动apache或清除APC缓存。我最后一次遇到这个奇怪的错误时,它为我做了诀窍。 但是,当然,学说会看到你删除或添加一个字段!
答案 1 :(得分:0)
您是否尝试使用更新的实体生成新数据库以检查它们是否正确?一种简单的方法是更改parameters.ini
文件上的数据库名称,然后再次运行生成数据库的控制台命令:
app/console doctrine:database:create
app/console doctrine:schema:create
如果新数据库不正确,您的实体就会出现问题。你如何定义它们(YAML,XML或Annotations)?我使用YAML,有时doctrine:generate:entities
操作效果不佳。发生这种情况时,我必须删除我的PHP实体并再次运行命令。
除此之外,请检查Doctrine Documentation,并确保按照拥有和反面的规则正确定义关联。