Doctrine 没有看到 prod env 实体中某些字段的更改,但在 dev env 上确实如此
Posted
技术标签:
【中文标题】Doctrine 没有看到 prod env 实体中某些字段的更改,但在 dev env 上确实如此【英文标题】:Doctrine not seeing changes to certain fields within entity for prod env but does on dev env 【发布时间】:2019-08-19 05:05:33 【问题描述】:我正在运行奏鸣曲管理员,并且我有一个现有的工作实体/管理员。我已经向教义 orm、实体、管理员添加了另外 2 列,并运行了 app/console 教义:schema:update 命令以成功将字段导入数据库。
在本地开发环境中,这很好用。
在生产中,新字段不会保存。
如果我在 preUpdate 或 postUpdate 中手动调用 $this->isMyNewField() 在奏鸣曲管理员中保存实体时,我会根据我是否选中该框得到正确的结果为真或假。
然而,学说似乎根本没有正确注册该字段,我已经记录了它在更新和持久化时运行的 sql,它甚至没有尝试对任何一个字段做任何事情。
如果我将 AppKernel 更改为在“dev”而不是“prod”(在生产环境中)上运行,那么一切都会按预期运行,并且学说可以毫无问题地使用它。
我尝试过清除原则元数据、清除缓存、重新启动服务器、更改字段类型、删除原则并重新添加(通过实体 orm xml 文件)
仍然没有运气。我可以尝试其他任何想法吗?
谢谢
凯文
【问题讨论】:
清除缓存或尝试清除元数据 我之前尝试过,但它是正确的,我错过了 env 参数???? 【参考方案1】:大家好,原来是命令
app/console doctrine:cache:clear-metadata
这需要运行,我尝试过但没有成功,所以我错过了它是环境,所以命令是
app/console doctrine:cache:clear-metadata --env=prod
后来还好,很郁闷
【讨论】:
以上是关于Doctrine 没有看到 prod env 实体中某些字段的更改,但在 dev env 上确实如此的主要内容,如果未能解决你的问题,请参考以下文章
问:Symfony2 - Doctrine - Class xxx 不是有效的实体或映射的超类
Doctrine2:将具有子实体的对象映射到没有附加表的实体
有没有办法从 Doctrine 2.2 实体中获取 FK 列值?
如何按 Doctrine2 中没有 @Column 注释的实体的属性进行搜索?