Symfony2中的Doctrine更新问题

时间:2012-09-06 14:30:09

标签: symfony doctrine-orm

我写了一些类并使用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。:实体之间的关系是多对多的

2 个答案:

答案 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,并确保按照拥有和反面的规则正确定义关联。