akeneo-pim-system-info_2016-06-16_14-41.txt
可能与https://github.com/akeneo/pim-community-dev/issues/2644中的内容相同(已关闭,没有解释)
通过批量编辑将值添加到产品属性时,版本控制会使用正确的时间戳进行更新,但不会更新产品更新的时间戳。
可以通过批量编辑一种产品并运行php app/console --env=prod pim:product:query '[{"field":"updated","operator":">= WITH TIME","value":"YYYY-MM-DD HH:mm:ss"}]'
这对使用EnhancedConnectors fromLastExecution
选项的某些导出配置文件具有重大影响。
笔记。 正在使用MongoDB->批量编辑将使用\Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
因此,这可能与以下事实有关: \Pim\Bundle\CatalogBundle\EventSubscriber\TimestampableSubscriber
仅侦听教义prePersist
和preUpdate
事件。 \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
根本不发出这些事件。
在调查之后,执行saveAll
时,日期确实在\Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
创建。 为什么EnhancedConnectors fromLastExecution
不考虑这些产品仍然是个谜。 某个地方是否存在时区不匹配?
看来MondoDB的normalizedData.updated
没有得到更新...
嗨Matias,
“在为产品属性添加值时”是什么意思? 您是否尝试更改共同的产品价值? 我尝试在全新安装中重现它,但是updated_at
产品字段已很好地更新。
在您的系统信息中,没有EnhancedConnectors
,正常吗?
“在为产品属性添加值时”是什么意思? 您是否尝试更改共同的产品价值? 我尝试在全新安装中重现它,但updated_at产品字段已很好地更新。
是的,更改哪个属性,以便将产品标记为更改,从而将其保留下来。
在您的系统信息中,没有EnhancedConnectors,正常吗?
不相关的
进行批量编辑时(无论哪种方法都将调用\Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
),以下内容将称为\Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
正如我们在1.4.x分支中一样,很好地看到产品_updated_值已在此处更新
https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L87
但是通过mongo处理程序进行的查询针对的是产品normalizedData
,并且不会使用新的created
和updated
时间戳进行更新(https://github.com/akeneo /pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L99)。
作为一种解决方法,我们正在监听akeneo.storage.pre_save_all
事件并在那里更新产品时间戳。
与#5006相关/重复
@ aRn0D这不是一个问题,它是一个错误; 按照#5006可以在ORM模式下使用,但不能在ODM模式下使用
向上。
我在我们的PIM实例中重现了该错误。
规范化器会更新动态更新的“根”字段,但不会将其更新为产品对象。 因此,正如@mathewrapid所说:
产品更新字段和normalizedData.updated始终不同步。 NormalizedData迟了一步。
我认为,如果在产品模型中设置了数据,则规范化器永远不必执行$data['updated'] = $this->mongoFactory->createMongoDate();
。 它是规范器,而不是更新器。
事实是,在标准化之前必须更新产品(如此更新的字段)。
+1
Imo。 可以关闭。 意见?
正如@nidup在https://github.com/akeneo/pim-community-dev/issues/4620#issuecomment -279428030中指出的那样,此问题已在PIM-6038中修复。
最有用的评论
Imo。 可以关闭。 意见?