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.