Cargando...

Migración de Elementor: nuestra historia sobre cómo resolver problemas de migración en Elementor

Actualizado el 31 de mayo de 2024

En 2022, tuvimos un caso interesante en Tyche Softwares: estábamos intentando actualizar nuestro sitio web activo a un sitio web completo basado en Elementor. Como queríamos centrarnos en corregir errores y trabajar en nuevas funciones en nuestros diversos plugins para nuestros clientes, decidimos subcontratar el desarrollo del tema para el nuevo sitio web (entre muchas otras cosas) a un desarrollador de temas.

La transformación no fue tan fluida como esperábamos. Pasamos por una montaña rusa en este proceso y enfrentamos nuevos desafíos en los que la mayoría de nosotros ni siquiera pensamos durante el proceso de renovación del sitio web. Entonces decidimos compartir nuestra experiencia sobre la migración de nuestro sitio web a Elementor.

La puesta en escena

Nuestro sitio web en vivo está diseñado con WordPress. (¿Qué más sería? 😉)

Para continuar con el nuevo proceso de diseño, pensamos que sería ideal clonar una copia del sitio web activo en un entorno de prueba. Posteriormente pusimos esa puesta en escena a disposición del desarrollador del tema.

El sitio de preparación era un clon del sitio web en vivo. Entonces, mientras el desarrollador del tema trabajaba en el sitio de prueba y realizaba cambios relacionados con Elementor, también estábamos realizando actualizaciones en el sitio web en vivo, especialmente en el aspecto de creación de nuevos clientes, nuevas publicaciones, publicaciones actualizadas, pagos, etc.

Sí, tu suposición es tan buena como la mía: cuando el desarrollador del tema haya concluido su Elementor actualizaciones para el nuevo diseño del sitio web, necesitaríamos realizar algún tipo de migración.

Un breve resumen de nuestro sitio web en vivo

La función principal de nuestro sitio web es mostrar los plugins que desarrollamos y gestionar pagos, suscripciones y renovaciones de nuestros plugins Pro. En el proceso de estas funciones, se lleva a cabo una serie de operaciones de la base de datos como inserción de nuevos registros, actualización de registros, eliminación de registros, etc. Estas operaciones hacen que se cambien muchas tablas en la base de datos.

El problema

En el proceso de diseño del nuevo tema y actualización del contenido de la publicación, el desarrollador del tema provocó muchos cambios en la base de datos.

La biblioteca Elementor utilizada para diseñar el nuevo tema con una sólida interfaz de usuario creó muchas operaciones complejas de bases de datos en el back-end para facilitar la nueva apariencia del front-end.

Al final del diseño del nuevo sitio web, lo que sucedió es que teníamos copias separadas del sitio web con diferentes contenidos de bases de datos.

Migración de Elementor: nuestra historia sobre cómo resolver problemas de migración en Elementor - Tyche Softwares

El sitio de prueba, en el que el desarrollador del tema había estado trabajando, tenía contenidos de base de datos actualizados relacionados con los cambios de Elementor, mientras que el sitio web en vivo que se ejecutaba en el dominio en vivo, tenía contenidos de bases de datos actualizados asociados principalmente con Plugin de descarga digital fácil (EDD) (plugin que hemos utilizado para vender copias digitales de nuestros plugins).

El problema de WordPress

En WordPress, se utilizan varias tablas para almacenar información relacionada con sus componentes y plugins. Un ejemplo de ello es el wp_posts tabla que se utiliza para almacenar datos relacionados con el contenido, así como wp_postmeta que almacena la metainformación de las publicaciones correspondientes en wp_posts. Debido a que hemos estado utilizando el plugin EDD para procesar pagos, suscripciones y renovaciones para nuestros clientes en el sitio web en vivo, se han realizado varias adiciones a la base de datos para el wp_posts y wp_posmeta tablas de bases de datos.

Para cada suscripción, renovación o compra, WordPress inserta registros en el wp_posts y wp_postmeta mesas. Así también en el caso del sitio de prueba (donde estaba trabajando el desarrollador del tema), las plantillas, el contenido y la configuración del tema de Elementor también resultaron en adiciones al wp_posts, wp_postmetay varias otras tablas de bases de datos (hablaré de ellas en breve).

Debido a esto, cuando intentamos fusionar el sitio de prueba (donde el desarrollador del tema había trabajado en el nuevo tema) con el sitio web en vivo, encontramos una serie de problemas:

  1. Había disparidades entre los wp_posts y wp_postmeta tablas para ambos sitios.
  2. Además del punto 1, había otros cuadros que presentaban disparidades, como el wp_terms, wp_termmetay wp_options mesas.

El problema de la migración

Con base en los problemas anteriores, asumimos que dado que estas tablas tenían cierto nivel de disparidad, la solución rápida sería realizar una migración.

Dado que el nuevo tema que se desarrolló estaba funcionando en el sitio de prueba, nuestra primera idea fue migrar el sitio web en vivo al sitio web de prueba y convertir efectivamente el sitio de prueba en un sitio web en vivo.

Sin embargo, con este plan, previmos los siguientes contratiempos:

Contratiempo 1

Al intentar migrar wp_posts y wp_postmeta datos del sitio web en vivo al sitio de prueba, los ID de los datos correspondientes en las tablas tendrían que cambiar cuando se migren. Esto se debe a que algunos datos en el servidor provisional ya tendrían el mismo ID que otros datos en el sitio web activo. En esencia, al migrar esos datos al sitio de prueba, las identificaciones deberían actualizarse.

Dado que la tabla de WordPress utiliza la función de incremento automático, implica que la nueva ID sería un incremento de la última ID generada en la tabla de la base de datos. Si bien esto puede no parecer un problema a primera vista, resultó ser un gran revés porque el plugin EDD almacena suscripciones, pagos y renovaciones en el wp_posts tabla, y el ID se envía a la pasarela de pago (en nuestro caso Stripe). La pasarela de pago Stripe utiliza el ID para detectar el registro a actualizar en el sitio de WP cuando se realiza una suscripción o renovación fuera de WP. En última instancia, esto significa que Stripe poseería la identificación anterior, mientras que el sitio de prueba tendría una identificación diferente, y eso provocará una anomalía en las acciones de pago de Stripe.

Contratiempo 2

No había plugins de WordPress que tuvieran un caso de uso específico para sincronizar datos de migración relacionados con Elementor de un sitio a otro clonado. Más bien, lo que teníamos eran plugins de migración adecuados para copiar/mover datos.

A partir de los contratiempos mencionados, resultó obvio que se tendría que aplicar lo siguiente:

  1. En lugar de mover los pagos y los datos relacionados con EDD del sitio en vivo al sitio de prueba, preferimos mover los datos de prueba (datos relacionados con Elementor) del sitio de prueba al sitio web en vivo. De esta manera, estamos seguros de que los datos relacionados con EDD permanecen intactos; sí, estábamos más preocupados por la experiencia de nuestros clientes y el flujo de compras.
  2. Buscaríamos plugins de migración de Elementor que ayudarían a migrar los datos de Elementor desde el sitio de prueba al sitio web activo.

Cuando intentamos migrar los datos de Elementor, nos encontramos con otro conjunto de problemas:

Migración de Elementor: nuestra historia sobre cómo resolver problemas de migración en Elementor - Tyche Softwares

Número 1

No pudimos encontrar plugins de migración específicos de Elementor, por lo que utilizamos los plugins de migración disponibles en el mercado de WordPress, como:

Cuando se utilizaron estos plugins para importar los datos de Elementor al sitio web activo, varios de los elementos del tema recién diseñados estaban rotos y era casi imposible detectar de dónde venía el problema (durante la importación). Al final, los datos de Elementor parecían haber sido importados, pero la interfaz visual del sitio web recién diseñado era un completo desastre.

Número 2

Intentamos utilizar el Opción Exportar plantilla en Elementor y registró algunos avances en la importación exitosa del Elementor plantillas en el sitio web en vivo.

Sin embargo, pasamos bastante tiempo intentando volver a aplicar la plantilla a las diferentes secciones del sitio web, e incluso con esos esfuerzos, no pudimos lograr que el sitio web fuera completamente funcional como estaba en el sitio de prueba.

Además, hubo algunos problemas con la navegación, el menú lateral, el encabezado y otras secciones ingeniosas del sitio web. Resultó que la función de exportación en la página de Elementor no exportaba exactamente todo el sitio web. Nos comunicamos con los foros de Elementor para obtener ayuda. Desafortunadamente, no obtuvimos ninguna información que fuera específica para nuestras necesidades. Como resultado, no pudimos migrar correctamente el sitio desde el sitio provisional al sitio web activo.

Entonces nos golpeó…

No había ninguna herramienta que permitiera directamente la migración de un sitio web basado en Elementor, especialmente para el escenario peculiar que teníamos: donde teníamos dos copias del mismo sitio web con datos diferentes en la base de datos.

La solución

Tuvimos que estudiar la estructura de la base de datos de Elementor tal como se almacena en la base de datos y escribir un script que migraría todos los datos necesarios para que el sitio web fuera funcional en el sitio web en vivo.

Migración de Elementor: nuestra historia sobre cómo resolver problemas de migración en Elementor - Tyche Softwares

El script de migración importaría solo los datos relacionados con Elementor desde el sitio de prueba y lo haría de manera similar a como lo habría hecho el plugin Elementor (durante la creación de los datos). En esencia, el plugin Elementor instalado en el nuevo sitio web debería poder funcionar con los datos importados sin problemas.

El script de migración realizaría las siguientes funciones:

  1. Sincronizar el contenido del wp-content carpeta para garantizar que las imágenes, plugins y otros datos estén sincronizados en ambos sitios.
  2. Asegúrese de que las versiones de Elementor en ambos sitios sean las mismas, así como otros plugins relacionados con Elementor, como Elementor Kits, Elementor Pro, etc.
  3. Cree una nueva tabla en la base de datos que se utilizará para asignar los ID antiguos (en el sitio de preparación) a los nuevos ID (en el sitio web en vivo). Vea abajo.
Migración de Elementor: nuestra historia sobre cómo resolver problemas de migración en Elementor - Tyche Softwares
  1. Revise todos los tipos de publicaciones de Elementor del wp_posts tabla en el sitio de prueba y crear los mismos datos en el sitio web en vivo. Dado que los ID de publicación cambiarían, anote el ID anterior y el nuevo ID y guárdelos en la tabla de mapeo.
  2. Para cada uno de los tipos de publicaciones en el punto 1 anterior, cree el post_meta y anote los cambios correspondientes en los ID.
  3. Revisa todos los datos del wp_term tabla en el sitio de prueba y cree todos los datos que están presentes en el sitio de prueba pero que no están presentes en el sitio web en vivo.
  4. Para cada uno de los wp_term datos que se crearon en el punto 3, cree la asociación wp_termmeta datos y anotar los cambios correspondientes en las ID y guardarlos en la tabla de mapeo.
  5. Revisa todos los datos del wp_term_relationships tabla en el sitio de prueba y cree todos los datos que están presentes en el sitio de prueba pero que no están presentes en el sitio web en vivo.

Una vez completada la migración de datos, descubrimos que algunos de los ID de los datos que se habían importado debían actualizarse a los nuevos ID (nuevo ID que se obtuvo como resultado de la migración).

Esto significaba que necesitábamos escribir un script actualizado que revisara la tabla de migración (o vea la imagen de arriba) y actualizara los ID antiguos a los nuevos ID correspondientes, además de realizar las siguientes funciones:

  1. Actualice las ID antiguas a las nuevas ID en el wp_options mesa. Por ejemplo, el Elementor La configuración de la página de inicio se puede guardar en el wp_options table y configúrelo en un valor de 41134. Este valor es el ID de publicación de la plantilla de inicio que se creó en el sitio de prueba. Debido a la migración de la publicación al sitio web activo, es posible que el ID se haya creado como 90302 en el sitio web activo. Entonces es necesario actualizar el ID antiguo (41134) al nuevo ID (90302); de lo contrario, la página de inicio no se mostrará correctamente.
  2. Actualice las ID antiguas a las nuevas ID en el wp_post_parent mesa.

Acciones post-migración

Después de la ejecución exitosa del script de migración y actualización, pudimos lograr la migración de t Los datos de Elementor al sitio web en vivo. Tuvimos que realizar las siguientes operaciones después de la migración para asegurarnos de que todo funcionara bien.

  1. Regenere el CSS para Elementor usando el Elementor -> Herramientas -> General -> Regenerar CSS y datos opción en Elementor.
  2. Limpiar cache. En nuestro caso, tuvimos que borrar el caché de NGINX, el caché de WP Rocket, Autoptimize y el caché de objetos de Redis. Resulta que borrar el caché es un buen consejo en general.
  3. Actualice las URL (en los casos en que la URL provisional sea diferente de la URL del sitio web activo) utilizando el Elementor -> Herramientas -> Reemplazar URL opción en Elementor.

Script de migración de base de datos de Elementor

Aunque la migración del sitio web de Elementor fue un viaje increíble, esto nos ha dado una nueva perspectiva. La curva de aprendizaje fue pronunciada pero pudimos obtener el resultado final con éxito.

En caso de que también tenga problemas o se encuentre con un muro durante la migración del sitio web de Elementor, nuestro script podría ayudarlo. Aquí está un enlace a los scripts de migración en GitHub.

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments