我编写了一些类,并使用php app/console doctrine:generate:entities将相关的表生成到数据库中
突然,我意识到我做错了什么,我把一些东西改成了那个类:有三个类(A,B,C),其中A连接到B,C是独立的(目前),但我的模式必须将A连接到C。所以我以一致的方式修改了所有的类,并启动了php app/console doctrine:schema:update --force。
令人大吃一惊的是,我注意到在DB上没有发生任何变化!
这怎么可能呢?有没有一个文件,他缓存了一些或类似的东西?
附注:实体之间的关系是多对多的
发布于 2012-09-06 23:24:56
如果您更改了一些行,则可以通过键入以下命令来查看将执行哪些请求:
doctrine:schema:update --dump-sql如果doesn看不到您的修改,请尝试重新启动apache,或者清除APC缓存。上一次我遇到这个奇怪的bug时,它帮了我大忙。当然,如果您删除或添加了一个字段,规则将会显示出来!
发布于 2012-09-07 11:10:18
您是否尝试使用更新后的实体生成新的数据库,以检查它们是否正确?执行此操作的一种简单方法是更改parameters.ini文件上的数据库名称,然后再次运行生成数据库的控制台命令:
app/console doctrine:database:create
app/console doctrine:schema:create如果新数据库不正确,则说明您的实体有问题。您如何定义它们(YAML、XML或注解)?我使用YAML,有时doctrine:generate:entities操作不能很好地工作。当发生这种情况时,我必须删除我的PHP实体并再次运行该命令。
除此之外,请检查Doctrine Documentation,并确保您正确地定义了关联,并遵循owning和inverse的规则。
https://stackoverflow.com/questions/12302387
复制相似问题