2

Sorry about the confusing name. I have the following problem. I have a migration for a content type that has a multivalue field-collection-item (~50 items there in average per content). The migration is fairly quick, 150 items/min. However the migration-update is very slow, 10 items/min. I've checked with xhprof and 95% of the time it spends inside FieldCollectionItemEntity::deleteRevision - basically deleting the old field collection items when re-populating the node with the new ones.

The content type has the revisions turned off, so the number of related revisions should be 1 all the time, not more. Is there any smart way to avoid this massive time that it takes?

I'm wondering if the Entity API has a queue system to save these delete operations for later. Or somehow removing revisions completely?

Thanks you

2

Copy and Paste your own version of the FieldCollectionItemEntity class file and call it like FieldCollectionItemEntity2. Then simply like have FieldCollectionItemEntity::deleteRevision return or do a NO-OP. Use the new class in your migration instead of the default one you're using now.

For when the migration completes; implement like a PostImport() function to delete all but the most recent revision.

To my knowledge there is no Queue of revision items. A node/entity Save (and revisioning) I thought is done in a sql transaction statement.

  • Hi Tenken, that is a great idea. What I'm worried about is missing deleting a cache (or other things than just deleting the revision) at the end - if it's necessary at all. I'll check if it's possible. Thank you! – itarato Nov 6 '13 at 17:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.