Doctrine 在 prod env 中没有看到实体内某些字段的更改,但在 dev env 上却看到了更改

Kev*_*vin 0 doctrine symfony sonata

我正在运行奏鸣曲管理员,并且我有一个现有的工作实体/管理员。我已经向 Dom、实体、管理员添加了另外 2 列,并运行了 app/console Dotility:schema:update 命令以成功将字段导入数据库。

在本地开发环境中,这非常有效。

在生产方面,新油田并没有节省成本。

在奏鸣曲管理中保存实体时,如果我在 preUpdate 或 postUpdate 中手动调用 $this->isMyNewField() ,我会得到 true 或 false 的正确结果,具体取决于我是否选中该框。

然而,学说似乎根本没有正确注册该字段,我已经记录了它在更新和持久化时运行的sql,并且它实际上甚至没有尝试对该字段执行任何操作。

如果我将 AppKernel 更改为在“dev”而不是“prod”(在生产环境上)上运行,那么一切都会按预期工作,并且原则会毫无问题地接受它。

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

还是没有运气。我还可以尝试其他想法吗?

谢谢

凯文

Kev*_*vin 5

大家好,原来这是命令

app/console doctrine:cache:clear-metadata 
Run Code Online (Sandbox Code Playgroud)

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

app/console doctrine:cache:clear-metadata --env=prod
Run Code Online (Sandbox Code Playgroud)

之后就很好了,非常沮丧