对于生产环境,学说没有看到实体中某些字段的更改,但是在开发环境中却发生了变化

时间:2019-03-28 12:15:01

标签: symfony doctrine sonata

我正在运行sonata admin,并且我有一个现有的工作实体/ admin。我在原则orm,实体,管理员中又添加了2列,并运行了app / console doctrine:schema:update命令,以将字段成功获取到数据库中。

在本地开发环境中,效果很好。

在生产中,不会保存新字段。

如果在preUpdate或postUpdate中手动调用$ this-> isMyNewField()在Sonata admin中保存实体时,根据是否选中此框,我会得到正确的结果为true或false。

但是,该学说似乎根本没有正确地注册该字段,我已经记录了它在update上运行并持续存在的sql,它甚至根本不尝试对该字段执行任何操作。

如果我将AppKernel更改为在“ dev”而不是“ prod”(在生产环境上)上运行,则所有工作均按预期进行,并且学说将其毫无问题地获取。

我曾尝试清除准则元数据,清除缓存,重新启动服务器,更改字段类型,移除准则并重新添加(通过实体orm xml文件)

仍然没有运气。还有其他可以尝试的想法吗?

谢谢

凯文

1 个答案:

答案 0 :(得分:0)

大家好,原来是命令

app/console doctrine:cache:clear-metadata 

需要运行,我没有成功尝试过,所以我错过的最大事情是环境,因此命令是

app/console doctrine:cache:clear-metadata --env=prod

此后一切都很好,非常令人沮丧