Migración de Drupal 7 a 8: una guía práctica que aborda los desafíos de la migración (con recomendaciones)

Publicado: 2020-02-27

¿Tienes en mente la migración de Drupal 7 a 8? ¿Sigues ejecutando tu sitio web en Drupal 7 (o 6)? ¡Ya es hora de migrar a Drupal 8!

Hemos escrito extensamente sobre por qué debería migrar a Drupal 8 si todavía está en Drupal 7 (o 6). Sin embargo, una de nuestras razones más favoritas (y significativas) para migrar a Drupal 8 es que ... ¡Drupal 9 está por llegar! Y si desea disfrutar de los beneficios de Drupal 9, se recomienda que primero migre Drupal 7 a Drupal 8. Podríamos argumentar que debería pasar a Drupal 8 ahora porque no hay tiempo suficiente una vez que Drupal 9 esté aquí (junio de 2020) y el EOL de Drupal 7 (noviembre de 2021). ¡Pero podría afirmar que puede optar por un LTS (soporte a largo plazo) en su lugar! Lo suficientemente justo. Excepto que, además de gastar más dinero en contratar a un proveedor de servicios LTS, también está perdiendo los ricos beneficios que Drupal 8 tiene para ofrecer. Algunas cosas pueden parecer difíciles, pero son necesarias para un futuro más sólido y sencillo.

Una vez en Drupal 8, ya no tiene que "migrar" - sólo una simple "actualización" de Drupal 8.9 a 9, y luego 9.9 a 10 y así sucesivamente, será suficiente. La migración de Drupal 7 a Drupal 8 no siempre es fácil y sencilla; Estoy de acuerdo. Seguir un proceso ayuda, pero es posible que aún enfrente algunos desafíos durante la migración, especialmente si el modelo de contenido de su sitio web Drupal 7 es considerablemente complejo. Vamos a llevarlo a través de una migración paso a paso de Drupal 7 a Drupal 8 con los desafíos que podría enfrentar. Y nuestras recomendaciones sobre cómo superarlas.

Drupal 8 Migrate: supuestos y preparativos

Estar preparado es la mitad de la victoria ”, dijo el novelista español Miguel De Cervantes. Una migración de Drupal 8 puede complicarse, pero si ha dedicado suficiente tiempo a planificar la migración, los desafíos no le sorprenderán. La adopción de Drupal 8 de muchos estándares de desarrollo modernos como Symfony, Twig, PHP 7, etc. ha llevado a esta reconstrucción completa, pero también requiere experiencias digitales más potentes, robustas y flexibles. Se enumeran algunas condiciones previas que debe recordar antes de comenzar la migración de Drupal 7 a 8:

  • Actualice su sitio web Drupal 7 a la última versión disponible. Esto ayudará a realizar actualizaciones automáticas más limpias de algunos de los módulos que tienen rutas de actualización directas de Drupal 8.
  • Asegúrese de tener acceso a la base de datos y los archivos del sitio web de Drupal 7 (públicos y privados).
  • Cree una copia de seguridad del sitio web de Drupal 7 y utilice esta copia de seguridad para la migración de Drupal 8. No se recomienda migrar un sitio web funcional en vivo, aunque la migración en sí no realiza ninguna modificación en la fuente.
  • Descargue una nueva instalación de Drupal 8 desde aquí y habilite los módulos principales de Migrate que discutimos anteriormente. Y recuerde, ¡DEBE ser fresco! Cualquier configuración realizada o contenido creado se sobrescribirá cuando se realice una actualización de Drupal 8.
  • No hay una ruta de actualización directa de Drupal 7 a Drupal 8 (a diferencia de las actualizaciones de versiones anteriores). Familiarízate con el sistema de migración de Drupal 8. Los tres módulos que están en el núcleo son el módulo Drupal 8 Migrate , el módulo Drupal 8 Migrate Drupal y el módulo Drupal 8 Migrate Drupal UI .
  • Haga su elección de migración: ¿usará Drush (que le brinda control granular) o usará la interfaz de usuario del navegador (más fácil pero con menos control)?
  • Conoce tu fuente. La flexibilidad del sistema de migración de contenido de Drupal permite extraer y cargar contenido de versiones anteriores de Drupal y otras fuentes como CSV, XML, JSON, MYSQL, etc.
  • Para una migración fluida del contenido de Drupal, realice una auditoría de contenido exhaustiva para identificar el contenido que necesita migrar. Deseche el contenido no utilizado e irrelevante para evitar perder tiempo y esfuerzo en migrarlo.

El proceso de migración de Drupal 7 a 8 (paso a paso)

  • Observar y planificar

Una migración fluida del contenido de Drupal requiere que primero identifique los tipos de contenido y la estructura del contenido del sitio existente y documente las observaciones. Esto incluye tipos de contenido, tipos de campo, bloques, taxonomías, etc. Prepare un plan sobre lo que necesita migrar y lo que necesita fusionarse, basado en estas observaciones. Analice las vistas y otras configuraciones del sitio y cataloguelas para que sea más fácil replicarlas en Drupal 8.

  • Cree una lista de verificación de módulos de su sitio web Drupal 7

Con esta lista de verificación, debería poder identificar los módulos que aún necesita, o si hay una versión Drupal 8 de ese módulo, o si el módulo ahora se ha movido a Drupal 8 Core (como el módulo Media). No todos los módulos de Drupal 7 se pueden migrar automáticamente a Drupal 8. Es posible que algunos módulos de Drupal 7 hayan combinado su funcionalidad en un solo módulo de Drupal 8. Y algunos módulos de Drupal 7 pueden haber separado sus características en dos o más módulos de Drupal 8. ¡Siempre es mejor analizar estos casos para asegurarse de que no se pierdan datos!

Recomendación de un experto : utilice un módulo como la interfaz de usuario de Drupal Migrate para identificar los módulos de Drupal 7 y su correspondiente módulo de Drupal 8 (si está disponible o no).

migración de drupal-7-a-8

Consejo profesional : ¿no hay una versión de módulo disponible para Drupal 8? Por ejemplo, el módulo ImageField en Drupal 7 no tiene un módulo D8 correspondiente. Es posible que tengamos que encontrar la mejor alternativa adecuada disponible para esto en Drupal 8. Por supuesto, tenemos el módulo Drupal 8 core Media. Sin embargo, tendremos que desarrollar scripts personalizados para migrar los datos de la imagen. migrar los datos de la imagen.

Recomendación de un experto : si acaba de heredar un sitio web de D7 y no tiene idea de las personalizaciones realizadas en los módulos O si ha realizado las personalizaciones usted mismo y necesita encontrarlas, le recomendamos que utilice Hacked! módulo. Este módulo revisará la lista de módulos disponibles en el sitio y los cambios / personalizaciones realizados en cada módulo.

  • Replicar y construir
    Replica los tipos de contenido, las taxonomías y todas las entidades que se requieren en su instancia D8. Las vistas deben crearse manualmente una vez que haya creado y replicado el contenido.

Recomendaciones de expertos -

  1. Los archivos de plantilla (.tpl) en Drupal 7 deben escribirse reescritos utilizando archivos twig, que es parte del marco de Symphony 2.
  2. Asegúrese de reescribir sus módulos personalizados que sigan los estándares de Symphony.
  • Implementando la migración de Drupal 7 a 8

Ha llegado el paso más esperado y significativo. Como se discutió anteriormente, hay dos formas de migrar sus datos de Drupal 7 a Drupal 8:

  1. Ejecutar una migración con la interfaz de usuario de Drupal
  2. Ejecutar una migración con Drush

Se recomienda este último ya que es más eficiente, se puede incorporar a los scripts de shell y tiene mensajes de error más claros.

Método de interfaz de usuario de Drupal

Aprovechando el módulo Migrate UI Drupal 8, puede comenzar visitando la ruta de actualización / del sitio web de Drupal 8. La página de revisión de actualización de Drupal 8 le mostrará una lista de módulos en su sitio de Drupal 7 que pueden y no pueden ser migrados automáticamente a Drupal 8. Para módulos que tienen sus funcionalidades en otro módulo D8 pero no exactamente iguales (como el módulo AddressField en D7 ahora es el módulo de direcciones en D8), deberá instalar y habilitar el módulo D8 correspondiente y reiniciar el proceso de migración de Drupal 7 a 8. Basándose en el catálogo del contenido y los datos extraídos, necesita construir los scripts de migración donde mapea los atributos de tipo de contenido de Drupal 7 con los atributos de tipo de contenido recién construidos de Drupal 8. A continuación, puede continuar con la importación de los datos desde un fuente de datos.

Método Drush

¿Se siente cómodo usando la terminal? Si es así, debe optar por el método Drush para la migración de Drupal 7 a 8. Proporciona un conjunto de comandos para el proceso de migración de datos con mejores mensajes de estado. Consulte este tutorial si está buscando una migración de procedimiento paso a paso utilizando comandos de Drush. ¿Nunca usaste Drush antes? Esta guía lo ayudará a comprender los conceptos básicos de Drush con una lista de comandos útiles para la migración.

Puede que te encuentres con algunos conflictos ahora. Asegúrese de haber verificado si hay problemas conocidos en Drupal. org y cómo solucionarlos. Una vez solucionado, ahora puede ejecutar el proceso de migración que proporciona registros / comentarios continuos de las acciones tomadas. Por último, compruebe los registros en busca de errores, corríjalos y ¡listo!

Recomendación de un experto - ¡Espere! Una vez que haya creado el contenido, nunca pase por alto el SEO / visitas a la página. Necesitamos que el contenido tenga las mismas rutas de URL. No olvides encargarte de migrar los alias de URL, información de metaetiquetas del contenido del antiguo sitio de Drupal 7.

  • Pruebas

Hay ocasiones muy raras en las que no encontrará ningún problema durante una migración de Drupal 7 a Drupal 8. Una vez que se completa la migración, es absolutamente necesaria una prueba de regresión de la configuración y el contenido recién importados para identificar cualquier error o problema potencial.

Desafíos y recomendaciones (más expertas)

  • Muchos módulos aportados por Drupal 7 tienen mejores versiones de sí mismos en Drupal 8 y algunos han quedado obsoletos. Por ejemplo, el módulo Field Collection, que se utiliza para agrupar campos en Drupal 7, pronto quedará obsoleto. La funcionalidad de este módulo se ha agregado al módulo de párrafos y al módulo de revisión de referencia de entidad en Drupal 8. El módulo de 8 párrafos de Drupal proporciona una inmensa flexibilidad a los editores / autores de contenido para crear formas y estructuras integradas. Si necesita migrar el módulo Colección de campos y asignarlo al módulo Párrafos (D8), deberá escribir complementos personalizados para asignar el contenido entre los campos de Colección de campos a los campos de párrafo. O si aún desea continuar con la migración del módulo Field Collection incluso en Drupal 8, este mapeo de campos se puede manejar mediante los complementos de migración de Core disponibles.
  • ¿Utiliza paneles para crear sus páginas de destino, como la página de inicio, el panel de control, etc.? ¿Incluso si solo necesita colocar un bloque en la página de inicio? ¡Constructor de planos al rescate! Layout Builder en Drupal 8 facilita que un editor de contenido personalice una página de destino. Aprovechemos al máximo las funciones de Drupal 8. Para migrar de Paneles al Constructor de diseños, necesitará escribir algunos complementos de migración personalizados.
  • Al migrar usuarios, también tendremos que mantener las contraseñas para que el usuario no tenga que volver a crear la contraseña en el nuevo sitio. Las contraseñas son contenido hash. Por lo tanto, debe encontrar el algoritmo de tipo hash que se utiliza en el sitio de origen. Próximo. escriba un proceso para validar la contraseña migrada con la contraseña renovada utilizando el mismo algoritmo.
  • Al ejecutar una migración de Drupal 7 a 8, puede agotar los recursos de su sistema, lo que puede hacer que la migración se detenga. Gracias a las marcas de marea alta, puede ejecutar la migración nuevamente y debería continuar desde donde se quedó.
  • El módulo de características ampliamente utilizado en Drupal 7 ahora casi se ha vuelto obsoleto después de que la gestión de la configuración se hizo cargo de todas las funciones de características y más en Drupal 8. Aunque el módulo de características también está disponible en Drupal 8, se recomienda encarecidamente aprovechar la configuración de Drupal 8 Sistema de gestión. No solo es más sencillo trabajar con él, es fácil de exportar entre entornos, utiliza formatos de archivo YAML en lugar de PHP, que es un formato de datos más legible y adecuado.
  • Si tiene un sitio web multilingüe de Drupal 7 (o 6), puede aprovechar el módulo Migrate Drupal Multilingual. Aunque el módulo multilingüe Migrate Drupal todavía se encuentra en una etapa experimental, es un módulo imprescindible para todos los sitios Drupal multilingües.
  • ¿Tiene problemas con la migración de Drupal 7 a Drupal 8? Hay varias formas de informar fallas y obtener ayuda:

- Cola de problemas de actualización de Drupal 8

- Cola de problemas del módulo si encuentra un error o una excepción con un módulo principal / contribuido

- El canal de IRC # drupal-migrate en Freenode

- El canal #migration en Drupal Slack

- Contrata a un experto en Drupal