Entity Lookup & Generate plugins de procesos de migracion

Publicado por Ada Hernández el 25 de Enero de 2017

Gracias a la comunidad de drupaleros ahora para la version 8 de  Drupal se han agregado dos nuevos plugin en el módulo migrate plus : entity_lookup y entity_generate; estos pueden ser usados para buscar y crear una entidad si no existe; les mostraré una forma en la que podemos implementar estos plugins y podremos ver que usos se les puede dar.

entity_lookup:  A como su nombre lo dice busca si existe alguna entidad previamente creada sino existe devuelve NULL y si existe devuelve el valor de esa entidad, este es un plugin base que es usado por entity_generate. Para su configuración tenemos 2 opciones:

Este es un ejemplo de la configuración completa de un campo de tipo Entity reference en nuestra plantilla de migración apartir de un archivo csv:

field_language:
   source: languages
   plugin: entity_lookup
   value_key: name
   bundle_key: vid
   bundle: languages
   entity_type: taxonomy_term
   ignore_case: true

o también podemos tener un mínimo de configuración que en ambos casos no dará ningún error:

field_language:
  source: languages
  plugin: entity_lookup

Este es un ejemplo de para buscar un file o image:

field_photo:
  source: photo
  plugin: entity_lookup

entity_generate este es un plugin muy importante para nuestras migraciones, nos ahorra una buena cantidad de tiempo; ahora  podemos crear o generar nuestra entidad automáticamente si no está creada aún, entity_generate extiende del plugin base entity_lookup por lo tanto primero es buscado si existe la entidad sino se crea.

Este plugin no necesita configuración, pero si hay campos en la entidad generada que se requieren o necesitan algún valor predeterminado, se puede proporcionar a través de una opción de configuración default_values.

Ejemplo de uso con la configuración default_values:

field_language:
  plugin: entity_generate
  source: languages
  default_values:
    description: 'Default description'
    field_text‎: 'Default long description'

y la manera corta que es sin configuración

field_language:
  plugin: entity_generate
  source: languages

Bueno estos son ejemplos de cómo podemos usar estos plugins en nuestras migraciones, espero que les sea muy útil.

¿Está buscando ayuda para una migración o actualización de Drupal? Independientemente de la complejidad del sitio o de los datos, MTech puede ayudarle a pasar de un CMS privado o actualizarlo a la última versión: Drupal 8.

Escríbanos sobre su proyecto y nos pondremos en contacto con usted dentro de 48 horas.