La ciencia detrás de una migración exitosa de Drupal 7 a 9 (y por qué algunos de ellos fallan)

Publicado: 2021-12-15

¿Recuerda ese gran sitio web que todos en su empresa amaban (o al menos toleraban) y que lo obligaron a migrar a un sistema más nuevo? ¿Y el equipo en el que confió para hacerlo tal vez mordió más de lo que puede masticar? Lo que una vez pudo haber sido un sitio web perfectamente atractivo y funcional, ahora se convierte en un lío de problemas extraños, bajo rendimiento o, a veces, en un sitio casi inutilizable.

Si esto le resulta familiar y tiene problemas extraños después de actualizar su sitio de Drupal 7 (o 6) a Drupal 9 (u 8), lea este artículo hasta el final . Vamos a entrar en los problemas comunes que enfrentan los propietarios de sitios después de actualizar Drupal 7 (o 6) a Drupal 9 (u 8) y cómo se pueden resolver. Esto no cubrirá todos los problemas que vemos cuando acudimos a un rescate de migración, pero al menos debería llevarlo a un punto en el que pueda dormir por la noche.

Drupal 7 a Drupal 9

Actualización de Drupal 7 a 9: el desafío fundamental

La primera pregunta que probablemente te estés haciendo es: "¿Por qué?" Actualizar de Drupal 7 a Drupal 9 (Drupal 8 ahora se ha cancelado) parece que no debería ser tan difícil desde la perspectiva de la plataforma.

Bueno, Drupal 8 cambió todo. Tuvo una revisión arquitectónica completa para que el CMS pudiera ser más sostenible, relevante y más fácil de entender a largo plazo. Su adopción de tecnologías y marcos modernos como la programación orientada a objetos, Symfony, Twig, las últimas versiones de PHP y (mucho) más, también han permitido que la comunidad de Drupal crezca exponencialmente al adaptarse a una gama más amplia de habilidades para ayudar a construir Drupal. Lo que significa que ahora es más fácil encontrar un experto para crear y mantener su sitio web de Drupal. La buena noticia es que actualizar a cualquier versión futura de Drupal (como Drupal 8 a Drupal 9) después de la migración inicial es extremadamente fácil y no requerirá una reconstrucción.

Pero volviendo al problema que nos ocupa, muchas organizaciones todavía están migrando de Drupal 7 a 9 , lo que implica una reconstrucción completa del sitio web. La reconstrucción en sí es lo suficientemente compleja sin mantener la estructura de contenido actual que puede dar cabida a los desarrolladores más experimentados. Y en la mayoría de los casos, los sitios web más grandes necesitan aún más atención, ya que tienden a tener múltiples módulos personalizados y contribuidos que no tienen una ruta de actualización directa. Todo eso en conjunto abre infinitas oportunidades para errores.

Para los equipos que no han intentado este tipo de migración, la mayoría de las veces, el primer error de migración de Drupal 7 a 9 es la falta de preparación. El primer paso y el más importante para una migración exitosa de Drupal es realizar una auditoría de migración exhaustiva para analizar cada pequeño detalle de la estructura del sitio web actual . Este informe no solo lo ayuda a evaluar las implicaciones de la migración, sino que también le brinda información sobre las áreas de mejora. El siguiente paso más importante es decidir si permitir que un socio de desarrollo de Drupal especializado (alguien que respira Drupal día tras día) realice la migración. Al igual que preferiría que un cirujano cardíaco realizara una cirugía de bypass en lugar de un cirujano ortopédico; tener una empresa especializada en Drupal para construir su sitio web de Drupal conducirá a una migración exitosa.

Auditoría de migración

Desafíos comunes de migración de Drupal 7 a 9

Una de las fuentes más comunes de frustración después de una migración de Drupal 6/7 a 8/9 es no saber por dónde empezar cuando se trata de problemas. ¿Cómo, con o sin habilidades de codificación, descubre dónde se encuentran los problemas reales? Fácil: consulte sus registros de errores. Lo sé, suena como si estuvieras abriendo otra lata de gusanos tratando de entender lo que dicen los registros, pero te guiaremos a través de los más comunes a continuación.

¿Cómo encontrar mis registros de errores?

  1. Asegúrese de haber habilitado el módulo dblog en su administrador -> página de módulos. Este es un módulo básico.
  2. Vaya a administración -> informes
  3. Haga clic en Registros de la base de datos. Debería ver todos sus registros de errores aquí.

Profundicemos directamente en algunos de los problemas más comunes que enfrentan los propietarios de sitios de Drupal después de una migración de Drupal 7 a Drupal 9.

El sitio web apenas funciona / está roto

  1. Problemas del servidor: su servidor puede verse comprometido si no tiene suficientes permisos para acceder a su servidor. Una mirada más profunda a los registros de errores lo ayudará a comprender de dónde se origina el problema. Si se trata de un problema del servidor, asegúrese de tener suficientes derechos para acceder a su servidor. Póngase en contacto con su proveedor de alojamiento para aumentar su límite de memoria si se encuentra con un problema de escasez de espacio. Si eso no ayuda, presente un ticket con ellos mencionando el problema de su servidor.
  2. Código personalizado: si su sitio web de Drupal 6/7 era más complejo de lo que se esperaba, lo más probable es que en lugar de evaluar el código personalizado y mapearlo correctamente antes de la migración, se llevó a cabo un cambio simple. Si tiene condiciones personalizadas que se activan cuando se carga su página y no encuentra el código personalizado asociado, terminará con una página rota. Lo primero que debe hacer es verificar si ha evaluado el sitio web correctamente en su auditoría de migración (si hizo una) para verificar si hay módulos y códigos personalizados. Si el problema se debe a una condición personalizada y falta el código, necesitará que su desarrollador de Drupal cree la implementación del código personalizado. Idealmente, el código personalizado debería haberse creado antes de migrar cualquier contenido.
  3. Módulo Core/Contrib: A veces puede encontrarse con un problema conocido en su módulo Core o contribuido que ya tiene una solución/parche. Un poco de investigación puede ayudar a identificar esto. Encuentre y aplique el parche y debería estar listo para comenzar.
  4. Versión/bibliotecas de PHP desactualizadas: es posible que su nuevo sitio de Drupal aún esté ejecutando una versión anterior de PHP o bibliotecas de las que depende su código. Asegúrese de que su sitio web implemente la última versión de PHP y otras bibliotecas. Compruebe también si se cumplen todos los requisitos y configuraciones del sistema.

No se pueden editar páginas (problemas de permisos)

  1. Error 500: si no puede editar páginas porque se encuentra con un error interno del servidor 500, podría deberse a varias razones (configuración incorrecta, código incorrecto, indexación incorrecta, agregación, etc.). Sin embargo, una de las razones más comunes es que podría deberse a una falta de coincidencia entre los formatos de los campos oa la falta de campos. Por ejemplo, si su campo de fecha de su sitio de Drupal 7 no se migró en el formato correcto o el valor no se transformó al formato de Drupal 9, generará un error. Otro ejemplo es si en Drupal 7 ha estado usando el campo Imágenes pero, en Drupal 9, está usando un campo de medios en su lugar. La mejor manera de solucionar esto es rectificar el script de migración para almacenar los datos correctamente. Si solo hay unos pocos campos para editar, también puede crear una actualización de enlace.
  2. Error 403: a menudo, el error 403 se debe a una transferencia incorrecta de permisos. Compruebe si los permisos están configurados correctamente. Si está utilizando un módulo para administrar sus usuarios, verifique si está disponible en Drupal 9. A veces, es posible que tenga ganchos o suscriptores de eventos que restrinjan el acceso a algunos usuarios. Verifique estas condiciones y asegúrese de que también se implementen en su nueva instalación.
  3. La página de permisos no responde: su sitio Drupal podría estar implementando algún código personalizado para manejar los permisos. Si este código no está implementado en el nuevo sitio de Drupal 9, es posible que no pueda ver o editar (o ambos) la página de permisos. Ocasionalmente, vemos situaciones en las que los usuarios se migraron de forma masiva sin migrar correctamente sus funciones y perfiles de usuario. Como práctica estándar, antes de migrar permisos, el desarrollador debe crear permisos personalizados y asignarlos a roles de personas/permisos.

Rendimiento miserable del sitio web

  1. Módulos innecesarios: los módulos son los componentes básicos de su sitio de Drupal, por lo que también querrá migrarlos. Pero a veces vemos módulos obsoletos e innecesarios de Drupal 7 movidos a Drupal 9, lo que puede causar todo tipo de problemas. Sobre todo porque pueden sobrecargar su sitio. Aquí hay algunas razones por las que algunos de sus módulos no necesitan migrarse:
    • El módulo (o su funcionalidad) ya se ha trasladado a Drupal Core. Por ejemplo, el módulo de contribución de medios se movió al núcleo en Drupal 8.5, lo que elimina la necesidad de usar el módulo de contribución.
    • Su funcionalidad es simple y se puede insertar dentro de otro módulo personalizado. Por ejemplo, si un módulo node::postSave se usa solo para uno o dos tipos de contenido para elegir dónde debe ir el usuario una vez que se crea el nodo, podría ser posible mover el código a un módulo personalizado en su lugar.
    • Los requisitos para el módulo deben ser reevaluados. A veces, un pequeño cambio en la usabilidad puede mejorar enormemente el rendimiento del sitio web. Por ejemplo, todos los sitios web realmente no necesitan un módulo de moderación de contenido a menos que el equipo de marketing de contenido sea grande y esté distribuido. Las características principales del flujo de trabajo editorial de Drupal (borrador, publicación) son lo suficientemente buenas para la mayoría de los requisitos comerciales que no necesitan un flujo de trabajo complejo o detallado.
    • A veces, los submódulos se instalan junto con los módulos, pero rara vez o nunca se usan. Dichos submódulos deben eliminarse.
  2. Replicar la misma arquitectura: aunque es más fácil simplemente levantar y cambiar y quitar el polvo de una migración, casi nunca es un buen enfoque. Especialmente si la arquitectura anterior (Drupal 6/7) era desordenada y menos robusta. Un cambio en la lógica/requisitos comerciales también podría necesitar una nueva arquitectura completa. Una auditoría exhaustiva del sitio le dirá exactamente qué módulos deben conservarse y cuáles pueden eliminarse de manera segura.

Las integraciones de terceros ya no funcionan

  1. Versión API desactualizada: si su sitio web está conectado a diferentes herramientas de terceros como Salesforce, Marketo, Mailchimp, etc., una migración ejecutada incorrectamente puede afectar el funcionamiento de estas integraciones. A menudo, la API que está solicitando en el módulo de integración de Drupal es una versión anterior. La única solución es que la integración debe escribirse en la última versión de la API de terceros.
  2. Problemas del módulo de integración: deberá verificar si las API de terceros se están llamando correctamente en el módulo de integración. ¿Se están pasando los parámetros correctamente? Compruebe cómo se configuran y recuperan. Verifique la cola de problemas para ese módulo de integración. Podría haber un parche disponible que deba aplicarse. Se deben realizar las pruebas adecuadas para garantizar que la API se haya portado correctamente a Drupal 9.

Otros problemas comunes y soluciones

  1. Instalación de módulos: utilice siempre composer para instalar módulos. Esto evitará errores debido a dependencias no válidas o no disponibles.
  2. Falta de coincidencia de la fuente de migración: no importa cuál sea su fuente de migración (CSV, base de datos, JSON, XML), asegúrese de que los campos de origen coincidan con los campos de destino. Si está utilizando CSV como su fuente, tenga en cuenta el orden de importación: la prioridad es importante para mapear los tipos de contenido.
  3. Rutas de imágenes : muchas veces, los usuarios agregan imágenes directamente dentro del contenido de CKEditor. Estas imágenes no siempre van a la ruta designada cuando se migran porque su ubicación suele ser diferente de donde se encuentran los otros archivos multimedia. Una migración meticulosamente planificada debería solucionar este problema.
  4. SEO: una migración negligente de Drupal 7 a 9 puede afectar el SEO de su sitio web de muchas maneras. Uno de los problemas más importantes son los enlaces rotos. Asegúrese de que la estructura de URL y la navegación existentes se conserven, ya que cualquier cambio puede generar toneladas de enlaces rotos. Se debe realizar una auditoría SEO completa para asegurarse de que no haya obstáculos en el camino.
  5. Estilo Drupal 7: A menudo surgen problemas de migración de Drupal 7 a Drupal 9 (especialmente problemas de rendimiento) porque los desarrolladores usan el mismo estilo de codificación que Drupal 7 en lugar de adaptarse a los cambios introducidos por Drupal 8. Ejemplos, (a) la forma en que matas la memoria caché de la página es muy diferente en Drupal 8. (b) Drupal 8 tiene una administración de configuración incorporada, pero a menudo no se implementa de la manera correcta ni se mantiene bien en todos los entornos. (c) También nos hemos encontrado con casos en los que el proyecto Drupal 8 todavía está implementando el estilo de código de procedimiento.