I have this json.

      "ProductKey": "145.1",
      "Product": {
        "Title": "Product title",
        "StartDate": null,
        "EndDate": null,    
        "ProductKeywords": [{
          "Name": "keyword 1"
          "Name": "keyword 2"
          "Name": "keyword 3"

So in this case I can't create a separate migration file for the taxonomy terms because the ProductKeywords is an array and have multiple taxonomy terms.

So I have done it in a single migration file with entity_generate plugin for the taxonomy term entity reference field.

    - plugin: sub_process
      source: keyword
        value: Name
    - plugin: entity_generate
      value_key: name
      bundle_key: vid
      bundle: keyword
      entity_type: taxonomy_term
      ignore_case: true

But the taxonomy terms created with entity_generate do not gets deleted with rollback.

I know there is a postRollback migration event, where we can execute some code after rollback. But I don't know how I can know which taxonomy terms needs to be deleted on the rollback.

Is there any example or hint available?

  • This is not possible. If you need rollback, you must create a separate, "real" migration for your taxonomies, using a destination plugin. Then in your Products migration use migration_lookup instead of entity_generate for your taxonomies.
    – Hudri
    Dec 17, 2020 at 8:56
  • How can I use the these multiple ProductKeywords in a separate migration file for taxonomy terms. Because I need to migrate multiple taxonomy terms from a single json object.
    – Ahmad
    Dec 17, 2020 at 9:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.