Pim-community-dev: λŒ€λŸ‰ νŽΈμ§‘-μ—…λ°μ΄νŠΈ λ‚ μ§œ

에 λ§Œλ“  2016λ…„ 06μ›” 16일  Β·  11μ½”λ©˜νŠΈ  Β·  좜처: akeneo/pim-community-dev

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

bug to reproduce

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이λͺ¨. 닫을 수 μžˆμŠ΅λ‹ˆλ‹€. 의견?

λͺ¨λ“  11 λŒ“κΈ€

λ”°λΌμ„œ 이것은 \Pim\Bundle\CatalogBundle\EventSubscriber\TimestampableSubscriber κ°€ Doctrines prePersist 및 preUpdate 이벀트 만 λ“£κ³  μžˆλ‹€λŠ” 사싀과 κ΄€λ ¨μ΄μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll λŠ” μ΄λŸ¬ν•œ 이벀트λ₯Ό μ „ν˜€ λ‚΄ 보내지 μ•ŠμŠ΅λ‹ˆλ‹€.

κ·Έκ²ƒμœΌλ‘œλ³΄κ³  ν•œ ν›„, λ‚ μ§œμ— μƒμ„±ν•©λ‹ˆκΉŒ \Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize 싀행쀑인 경우 saveAll . 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κ°€ λ§ν–ˆλ“―μ΄ :

  • μ—¬κΈ°μ„œ μ—…λ°μ΄νŠΈ 된 루트 ν•„λ“œλŠ” μ •μƒμž…λ‹ˆλ‹€ (https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L87).
  • 그리고 normalizedDataμ—μ„œ μ •κ·œν™”λ˜λŠ” μ œν’ˆ 개체 λ©”λͺ¨λ¦¬μž…λ‹ˆλ‹€ (https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer .php # L99)

μ œν’ˆ μ—…λ°μ΄νŠΈ ν•„λ“œμ™€ normalizedData.updatedλŠ” 항상 λ™κΈ°ν™”λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. NormalizedDataκ°€ ν•œ 단계 λŠ¦μŠ΅λ‹ˆλ‹€.

μ œν’ˆ λͺ¨λΈμ— 데이터가 μ„€μ •λ˜μ–΄ 있으면 λ…Έλ©€ 라이저가 $data['updated'] = $this->mongoFactory->createMongoDate(); λ₯Ό ν•  ν•„μš”κ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 업데이터가 μ•„λ‹ˆλΌ λ…Έλ©€ λΌμ΄μ €μž…λ‹ˆλ‹€.

사싀은 μ •κ·œν™” 전에 μ œν’ˆμ„ μ—…λ°μ΄νŠΈ (μ—…λ°μ΄νŠΈ 된 ν•„λ“œ)ν•΄μ•Όν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

+1

μ•ˆλ…•ν•˜μ„Έμš” @mathewrapid , @jlestel , @bmarrot !

참고둜이 문제 (PIM-6038)λŠ” λ‹€μŒ λ²„μ „μ—μ„œ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μΉœμ• ν•˜λŠ”,

이λͺ¨. 닫을 수 μžˆμŠ΅λ‹ˆλ‹€. 의견?

@nidup 이 https://github.com/akeneo/pim-community-dev/issues/4620#issuecomment -279428030μ—μ„œ μ§€μ ν–ˆλ“―μ΄ PIM-6038μ—μ„œ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰