Migrar de Drupal 6 a WordPress 3

Muchos de nosotros empezamos en el mundo de los CMSs con Drupal y a lo largo del tiempo nos hemos ido dando cuenta que WordPress es una mucho mejor opción y nos planteamos el cambiarnos de bando, eso sí, sin perder todos los posts, comentarios, categorias, … que durante largo tiempo (dos años en mi caso) hemos ido añadiendo en Drupal.

Por suerte, la migración de los datos es posible, aunque no tan simple como desearíamos. Basados en algunos scripts que encontré en su momento (como ésteéste o éste) me decidí a crear una programa en Java que se encargara de hacer la migración de los datos básicos de forma automática y que funcionara para versiones más recientes de Drupal y WordPress.

Por datos básicos se entienden los posts, páginas, stories, categorias y comentarios. Para temas más avanzados (CCKs, foros, usuarios y roles, redirecciones de las URLs, internacionalización y un largo etc) podéis consultar los servicios de migración profesionales que se ofrecen en Go WordPress (más de medio millón de posts migrados ya de Drupal y otros CMSs a WordPress!).

Las operaciones de conversión que realiza el programa son las siguientes (el código fuente está disponible gratuitamente al final del post). Obviamente, el programa está configurado para funcionar con mis datos de conexión y para los casos concretos que comentaba anteriormente. Adaptadlo a vuestras necesidades y ¡utilizadlo a vuestra cuenta y riesgo!.

Pasos para la migración de Drupal 6 a WordPress 3:

  1. Instalar WordPress en la misma base de datos donde tenéis Drupal instalado (no obligatorio pero facilita la escritura de queries que accedan a los dos conjuntos de tablas al mismo tiempo)
  2. Eliminar los datos de las siguientes tablas de WordPress: comments, posts, postmetaterm_relationships, term_taxonomy, terms.
  3. Migración de las taxonomías de categorías en Drupal.  Cada fila en term_data se inserta en las tablas de WordPress terms term_hierarchy en term_taxonomy (si la categoría es hija de otra categoría)
  4. Migración de los posts/páginas. Esto implica recuperar los datos de las siguientes tablas de Drupal: node (información básica del post como el título, la fecha,…), node_revisions (el body y el teaser del post) y url_alias (la clean URL que se utiliza para acceder al post). Toda esta información se inserta en la tabla posts en wordpress. Drupal guarda como URL la URL completa del post mientras que en wordpress cada post sólo guarda la parte correspondiente al título del post con lo que hay que realizar la adaptación pertinente.
  5. Corregir los links internos a imágenes y archivos en el body de los posts. En WordPress normalmente las tendremos en la carpeta “uploads” mientras que en Drupal estaban probablemente en “sites/default/files”. Hay que reescribir todas las referencias a esta segunda para que los links apunten correctamente a la carpeta de wordpress. Esto lo hacemos con una instrucción como ésta :  body=body.replaceAll(“/sites/default/files/”, “/wp-content/uploads/”);
  6. Relacionar posts y categorias. En Drupal la relación se guarda en term_node y hay que moverla a la tabla term_relationships en wordpress.
  7. Una vez migrados los links hay que actualizar el attributo count de categoria para que muestre el número de posts asociados a esa categoria según la información en term_relationships que acabamos de generar
  8. Migración de los comentarios. Bastante directa, de la tabla comments de Drupal a la comments de wordpress.
  9. Igual que antes, hay que actualizar el atributo  comment_count de la tabla posts table para que refleje el valor correcto de comentarios asociados al post (sinó, los comentarios no se mostraran aunque se hayan insertado correctamente).

El código fuente Java que realiza estas operaciones se puede descargar aquí .

AVISO: esta publicación es de hace dos años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

Valora este artículo para mejorar la calidad del blog ...

Al hacer una valoración se recoge una cookie con la IP de tu dispositivo

FlojitoNo está malEstá bienMe ha servidoFantástico (sin valoración aún)
Cargando…

Autor: jcabot

Ver mis proyectos http://migratetowp.com y http://modeling-languages.com/

Comparte esta entrada en
468 ad

Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas y para servir más rápidos los contenidos.

gpdr, wpSGCacheBypass

Cookies de terceros

Usamos cookies de terceros en las que se almacenan externamente para conocer tus usos de navegación, si ya estás suscrito al boletín y los elementos compartidos en redes sociales

cfduit_, intercom-id, intercom-lou, mailerlite:language, mailerlite:webform, _ga, _gid

Pin It on Pinterest