Comunidad Drupal en español

[Tuto] Migrar de PHP-Nuke a Drupal


Voy a explicar como hacer para migrar nuestro sitio hecho en PHP-Nuke a Drupal, en mi caso pasé de PHP-Nuke 6.5 a Drupal 5.x (no me acuerdo cual subversión era, creo que la 5.2), de cualquier manera sirve como referencia para migrar cualquier versión del Nuke a cualquiera de Drupal.

Todo lo que explico hay que hacerlo desde el phpMyAdmin (bue hay otras formas, pero es lo que más se usa), en la opción de "SQL"
Haganlo primero en LOCAL para probarlo, es probable que tire algún error, en ese caso coméntenlo.

Acá les pego los códigos que pasan la información de un sistema al otro, ambas bases de datos (la de PHP-Nuke y Drupal) deben estar instaladas en el mismo servidor (más que obvio esto)

Para las noticias:

INSERT INTO BD-DRUPAL.node_revisions (nid, vid, uid, title, body, teaser, timestamp, format)
SELECT s.sid, s.sid, u.user_id, s.title, CONCAT(s.hometext, "", s.bodytext), s.hometext, UNIX_TIMESTAMP(s.time), 1 FROM BD-NUKE.nuke_stories s, BD-NUKE.nuke_users u WHERE s.informant=u.username;
INSERT INTO BD-DRUPAL.node (nid, vid, type, title, uid, created, changed, comment, promote, moderate, sticky)
SELECT s.sid, s.sid, 'story', s.title, u.user_id, UNIX_TIMESTAMP(s.time), 1026795842, 0, 1, 0, 0 FROM BD-NUKE.nuke_stories s, BD-NUKE.nuke_users u WHERE s.informant=u.username;
INSERT INTO BD-DRUPAL.term_node (nid, tid) SELECT s.sid, s.topic FROM BD-NUKE.nuke_stories s;

Donde BD-DRUPAL es el nombre de la base de datos de Drupal y BD-NUKE es el nombre de la Base de datos de PHP-Nuke.
Esos tres códigos pasan las noticias a la tabla "node_revisions, node y term_node respectivamente, como pueden ver.

Para las categorías (o tópicos)

INSERT INTO BD-DRUPAL.vocabulary VALUES (1, "Noticias", "Noticias enviadas por los usuarios", 0, 1, 0, 1, "blog,poll,story", 0);

INSERT INTO BD-DRUPAL.term_data (tid, vid, name, description, weight) SELECT topicid, 1, topicname, topictext, 0 FROM BD-NUKE.nuke_topics;

INSERT INTO BD-DRUPAL.term_hierarchy (tid, parent) SELECT topicid, 0 FROM BD-NUKE.nuke_topics;

Acá voy a explicar algo, en este caso cree un vocabulario con ID = 1 (se puede crear desde el mismo drupal y asignarle el id 1) y como pueden ver el nombre es Noticias y la descripción "Noticias enviadas..." para después pasar las noticias que tenía en PHP-Nuke a ese vocabulario, si se fijan le asigno en "term_data" el "vid" 1 que es el que tiene el vocabulario Noticias.

Para los usuarios:

INSERT  INTO BD-DRUPAL.users( uid, name, pass, mail, created, status, timezone, init)
SELECT user_id, username, user_password, user_email, 1186175567, 1, -1800, user_email FROM BD-NUKE.nuke_users;

Aclaración, en ese ejemplo va a quedar como que cada usuario se registró el mismo día, para tomar el valor de la fecha de registro del Nuke había que hacer un cambio en el formato (juntar un par de datos, etc.) y lo dejé así.

Por último si a alguien le interesa puedo agregar como pasar los "Web-Links" del nuke a Drupal, creando un nuevo "Tipo de Contenido" y agregándole un campo para la url con CCK.

Si bien esto fue hecho para pasar a la versión 5.2 de Drupal, no hay muchas diferencias con al versión actual (6.4), aunque algunas hay, pero fijense que no es tan complicado migrar sitios.

Espero les sirva.

Saludos, Cauly

Gracias por el aporte!

Un saludo

Yo migré mi página web en nukeET 3.4 a drupal 5.6 mediante este script:
http://bogdan.org.ua/2006/09/08/php-nuke-60-to-drupal-473-migration-conv...

la verdad es que va bastante bien. Importa usuarios, noticias y comentarios, foros, posts de foros y encuestas.

Saludos



Navegación

Inicio de sesión

En línea

En este momento hay 0 usuarios y 0 invitados en línea.