Migración de datos en
Drupal 8
Javier Gómez
Drupal Backend Developer
www.codigoweb.es
@fjgomez2
Migración de datos ¿para qué?
• Actualizar drupal desde una versión anterior 7, 6, ….
• Importar datos desde otros cms
• wordpress
• joomla
• etc
• Importar datos desde otras fuentes de datos
• MySQL
• CSV
• JSON
• XML
De Drupal 7 a Drupal 8
• No todo son datos, hay que migrar funcionalidad
• Módulos contrib, la mayoría ya están migrados, pero no todos
• https://www.bluespark.com/status-top-100-contributed-modules-drupal-8
• http://d8upgrade.org (te mandan un informe basado en los módulos de tu drupal 7)
• Módulos custom, hay que volverlos a programar
• Temas
• Rules
• Pero ¿Cómo lo hacemos? (marzo 2017)
• Drupal 7: Analizar funcionalidades y estructura de contenido
• Instalación limpia de Drupal 8 añadiendo funcionalidades y estructura
• Importar datos desde Drupal 7
migrate_drupal
• Sub-módulo de migrate en core para la importación de Drupal 6 y 7
• Está en fase experimental
• http://my-drupal-8/upgrade
• Realiza importación no sólo de contenido, se intenta importar parte de la
configuración
• Es poco fiable y no se recomienda su utilización (marzo 2017)
• https://www.drupal.org/project/migrate_upgrade
• Permite importar directamente desde D6 y D7 sin tener que programar
• Es experimental y no es 100% fiable (marzo 2017)
migrate_upgrade
Feeds y Migrate
• Drupal 7 (2 tendencias)
• Feeds: configurable desde interface
• Migrate: había que programar pero era más potente
• Para la mayoría de los casos servían los 2
• Eran módulos contrib
• Drupal 8
• Migrate está en el core
• Feeds existe como módulo contribuido en versión dev
• Otras opciones: Módulo custom
Migrate
• Se programa la importación en código (módulo custom)
• Se maneja desde línea de comandos con drush
• Permite volver atrás (Rollback)
• Permite hacer depuración (debug)
• Módulos contrib complementarios
• https://www.drupal.org/project/migrate_tools
• Necesario para utilizar drush
• https://www.drupal.org/project/migrate_plus
Programar una migración
• Es más complejo que en Drupal 7
• Requiere tener conocimiento sobre:
• Programación de módulos en Drupal 8 / Symfony
• Funcionamiento de Migrate
• OOP en PHP
• No partimos de 0, github, github
• https://github.com/wunderkraut/migrate_source_example
• https://github.com/Ymbra/migrate_default_content
• ….
Anatomía de una migración
• {mi-modulo}.info.yml y {mi-modulo}.module
• Fichero necesario para instalar el módulo
• Carpeta /config/install
• Archivos YAML de configuración
• Carpeta /src/Plugin/migrate/source
• Clases de la Migración
• Carpeta /source
• Ubicación de los archivos a importar (csv, json), excepto BD
Ejemplo 1 (CSV)
Ejemplo 2 (DB)
drush migrate
• drush migrate-import (mi)
• Ejecuta la migración
• drush migrate-status (ms)
• Muestra el estado de las migraciones
• drush migrate-rollback (mr)
• Revierte una migración y deja todo como estaba
• Otros comandos
• drush migrate-reset-status (mrs)
• drush migrate-stop (mst)
• drush migrate-messages (mmsg)
drush migrate-import
• Sintaxis:
• drush mi {nombre-de-la-migración} [opciones]
• Opciones
• --all: procesa todas las migraciones
• --group {nombre_grupo}: Procesa las migraciones de un grupo
• --limit {n}: procesa n registros (ideal para testeo)
• --force: Fuerza el procesado aunque fallen dependencias
• --tag: nombre de la etiqueta a procesar
• --execute-dependencies: Ejecuta antes las dependencias
• --feedback: frecuencia del refresco de mensajes
• --idlist: lista de ids a procesar separada por comas
DEMO
Preguntas?
• https://www.drupal.org/docs/8/api/migrate-api
Documentación
Gracias!!
Javier Gómez
Drupal Backend Developer (EUIPO)
www.codigoweb.es
@fjgomez2
www.linkedin.com/in/codigoweb

Migración de datos en drupal 8

  • 1.
    Migración de datosen Drupal 8 Javier Gómez Drupal Backend Developer www.codigoweb.es @fjgomez2
  • 2.
    Migración de datos¿para qué? • Actualizar drupal desde una versión anterior 7, 6, …. • Importar datos desde otros cms • wordpress • joomla • etc • Importar datos desde otras fuentes de datos • MySQL • CSV • JSON • XML
  • 3.
    De Drupal 7a Drupal 8 • No todo son datos, hay que migrar funcionalidad • Módulos contrib, la mayoría ya están migrados, pero no todos • https://www.bluespark.com/status-top-100-contributed-modules-drupal-8 • http://d8upgrade.org (te mandan un informe basado en los módulos de tu drupal 7) • Módulos custom, hay que volverlos a programar • Temas • Rules • Pero ¿Cómo lo hacemos? (marzo 2017) • Drupal 7: Analizar funcionalidades y estructura de contenido • Instalación limpia de Drupal 8 añadiendo funcionalidades y estructura • Importar datos desde Drupal 7
  • 4.
    migrate_drupal • Sub-módulo demigrate en core para la importación de Drupal 6 y 7 • Está en fase experimental • http://my-drupal-8/upgrade • Realiza importación no sólo de contenido, se intenta importar parte de la configuración • Es poco fiable y no se recomienda su utilización (marzo 2017) • https://www.drupal.org/project/migrate_upgrade • Permite importar directamente desde D6 y D7 sin tener que programar • Es experimental y no es 100% fiable (marzo 2017) migrate_upgrade
  • 5.
    Feeds y Migrate •Drupal 7 (2 tendencias) • Feeds: configurable desde interface • Migrate: había que programar pero era más potente • Para la mayoría de los casos servían los 2 • Eran módulos contrib • Drupal 8 • Migrate está en el core • Feeds existe como módulo contribuido en versión dev • Otras opciones: Módulo custom
  • 6.
    Migrate • Se programala importación en código (módulo custom) • Se maneja desde línea de comandos con drush • Permite volver atrás (Rollback) • Permite hacer depuración (debug) • Módulos contrib complementarios • https://www.drupal.org/project/migrate_tools • Necesario para utilizar drush • https://www.drupal.org/project/migrate_plus
  • 7.
    Programar una migración •Es más complejo que en Drupal 7 • Requiere tener conocimiento sobre: • Programación de módulos en Drupal 8 / Symfony • Funcionamiento de Migrate • OOP en PHP • No partimos de 0, github, github • https://github.com/wunderkraut/migrate_source_example • https://github.com/Ymbra/migrate_default_content • ….
  • 8.
    Anatomía de unamigración • {mi-modulo}.info.yml y {mi-modulo}.module • Fichero necesario para instalar el módulo • Carpeta /config/install • Archivos YAML de configuración • Carpeta /src/Plugin/migrate/source • Clases de la Migración • Carpeta /source • Ubicación de los archivos a importar (csv, json), excepto BD
  • 9.
  • 10.
  • 11.
    drush migrate • drushmigrate-import (mi) • Ejecuta la migración • drush migrate-status (ms) • Muestra el estado de las migraciones • drush migrate-rollback (mr) • Revierte una migración y deja todo como estaba • Otros comandos • drush migrate-reset-status (mrs) • drush migrate-stop (mst) • drush migrate-messages (mmsg)
  • 12.
    drush migrate-import • Sintaxis: •drush mi {nombre-de-la-migración} [opciones] • Opciones • --all: procesa todas las migraciones • --group {nombre_grupo}: Procesa las migraciones de un grupo • --limit {n}: procesa n registros (ideal para testeo) • --force: Fuerza el procesado aunque fallen dependencias • --tag: nombre de la etiqueta a procesar • --execute-dependencies: Ejecuta antes las dependencias • --feedback: frecuencia del refresco de mensajes • --idlist: lista de ids a procesar separada por comas
  • 13.
  • 14.
  • 15.
    Gracias!! Javier Gómez Drupal BackendDeveloper (EUIPO) www.codigoweb.es @fjgomez2 www.linkedin.com/in/codigoweb