Migrando a Drupaldesde otro(s) CMS
Guía de supervivencia
Drupal Camp | Guatemala 2010
Drupal Camp | Guatemala 2010
Migrando a Drupal desde otro(s) CMSGuía de supervivencia
Agenda
1. EL problema de la migración.
2. Herramientas Disponibles.
3. Cuando las herramientas fallan!!!.
4. Recomendaciones para las estimar
5. Preguntas.
Drupal Camp | Guatemala 2010
Agenda
Es muy común que encontremos proyectos para migrar un sitio que actualmente funciona con otro CMS (Wordpress, Joomla, Hot Banana, etc) a Drupal.
Lógicamente estos sitios contienen:
• Información
• Estructura ( NO DRUPAL)
• Lenguaje ( NO PHP)
• Base de Datos ( NO MYSQL)
Drupal Camp | Guatemala 2010
1. El problema de la migración.
• http://drupal.org/project/migrate
• http://drupal.org/project/migrate_extras
• http://drupal.org/project/igx_migrate
• http://drupal.org/project/joomla
• http://drupal.org/project/phorum
• http://drupal.org/project/phpbb2drupal
• http://drupal.org/project/wordpress_import
• http://drupal.org/project/phpnuke2drupal
• http://drupal.org/project/wp2drupal
Drupal Camp | Guatemala 2010
2. Herramientas disponibles
Drupal Camp | Guatemala 2010
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
MySQL Migration Toolkit
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Crear contenido
Luego de asegurarnos que tenemos la base de datos a migrar, y que sea accesible desde drupal debemos proceder a:
• Crear Content Types
• Crear Vocabularios
• Insertar Nodos
• Asociar nodos a vocabularios
• Generar teasers
• Generar path automaticos
• Crear Vistas
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Crear contenido
Luego de asegurarnos que tenemos la base de datos a migrar, y que sea accesible desde drupal debemos proceder a:
• Crear Content Types
• Crear Vocabularios
• Insertar Nodos
• Asociar nodos a vocabularios
• Generar teasers
• Generar path automaticos
• Crear Vistas
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Insertar nodos usando sql scripts
Luego de identificar de donde procede nuestro contenido, debemos ejecutar scripts sql para crear:
• Node Revisions
• Nodes
Es muy importante conservar las relaciones nid en nuestras tablas a razonde que Drupal pueda enconntrar el contenido.
Ademas es recomendable borrar el cache y accesar el contenido recien creado con el usuario admin para evitar problemas de cache
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Creando Node Revisions
//Insert node revisions
//Set the initial node id
SET @rownum :=20;
INSERT INTO drupal_db.node_revisions(nid,uid,title,body,timestamp,format)
SELECT @rownum := @rownum + 1,21,c.txtTitle,txtBody,UNIX_TIMESTAMP(c.dtAdded),1
FROM tblnavigation n, tblitem i, tblcontent c
WHERE n.intParentID = '537'
AND n.blnDeleted =0
AND n.intID = i.intWebID
AND i.blnDeleted =0
AND i.intID = c.intItemID and c.blnLive=1;
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Creando Nodes
//Insert nodes
//Set the initial node id
SET @rownum :=20;
INSERT INTO bridalgu_d6db.node(vid,type,uid,status,title,created)
SELECT @rownum := @rownum + 1,'blog',21,1,c.txtTitle,UNIX_TIMESTAMP(c.dtAdded)
FROM tblnavigation n, tblitem i, tblcontent c
WHERE n.intParentID = '537'
AND n.blnDeleted =0
AND n.intID = i.intWebID
AND i.blnDeleted =0
AND i.intID = c.intItemID and c.blnLive=1;
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Creando Terminos en vocabularios
Se debe hacer un análisis de la base de datos a migrar para por extraer los términos a colocar en nuestros vocabularios de drupal y usar una función para insertarlo en drupal, como se muestra a continuación:
<?php
function insertTerm($vid,$term,$description,$weight){
$sqlIsertTerm="INSERT INTO drupal_db.term_data "; $sqlIsertTerm.="(vid,name,description,weight) ";
$sqlIsertTerm.="values($vid,$term,$description,$weight)";
mysql_query($sqlIsertTerm,$new_db);
?>
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Creando Terminos en vocabularios
Se debe hacer un análisis de la base de datos a migrar para por extraer los términos a colocar en nuestros vocabularios de drupal y usar una función para insertarlo en drupal, como se muestra a continuación:
<?php
function insertTerm($vid,$term,$description,$weight){
$sqlIsertTerm="INSERT INTO drupal_db.term_data "; $sqlIsertTerm.="(vid,name,description,weight) ";
$sqlIsertTerm.="values($vid,$term,$description,$weight)";
mysql_query($sqlIsertTerm,$new_db);
?>
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Asociando términos a nodos
Se debe hacer un análisis de la base de datos a migrar saber que terminos se debes asociar a cada nodo y crear una funcion parecida a la que se lista a continuación:
<?php
function insertNodeTerm($vid,$nid,$termid){
$sqlInsert= "insert into drupal_db.term_node (nid,vid,tid) “;
$sqlInsert= "values($nid,$vid,$termid)";
mysql_query($sqlIsert,$new_db);
?>
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Crear nodos cck via código
Crear nodos content type con campos personalizados puede ser dificil:
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Problemas después de importar
Teaser:
Problema:
• Después de importas nodos el campo teaser esta vacío o es difícil de calcularlo si tiene HTML.
• Esto causa que las vistan no retornen la información correcta.
Solución:
• Usar el modulo http://drupal.org/project/retease
• Advertencia
• Retease, borrara aquellos teaser que hayas hecho en nodos de forma personalizada
• Borrar los path personalizados y los calculados con pathauto.
• Recomendar hacer esto al inicio del proceso de importación
Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!!
Problemas después de importar
Al importar nodos nuevos, no existirá información extra como la generada por nodewords para el SEO del sitio.
Drupal Camp | Guatemala 2010
4. Recomendaciones para estimar
Las siguientes son recomendaciones para estimar un proyecto de migración
• Definir tiempo para aprender a conocer la estructura de la base de datos desde donde se va a extraer la información > 1 día
• Definir tiempo de procesar la infamación hacia MySQL de ser necesario.
• Calcular cuantos paginas/nodos deben migrarse.
• Se debe calcular cuanto se invierte en migrar 1 pagina/Nodo
• Tiempo en hacer inserción en la base de datos.
• Tiempo en validar que el contenido se haya migrado bien en términos de HTML y CSS
• Verificación del contenido migrado y su funcionamiento con vistas / listados
• Identificar si las paginas/nodes tienen css inline.
• Identificar si las paginas/nodes tienen images inline.
Drupal Camp | Guatemala 2010
4. Recomendaciones para estimar
Las siguientes son recomendaciones para estimar un proyecto de migración
• Definir el numero vistas/listados deben generarse
• Definir cuantos vocabularios y términos deben generarse y asociarse a los términos.
• Definir los tipos de usuario y roles del sitio.
• Definir el numero de usuario a migrar
Drupal Camp | Guatemala 2010
4. Recomendaciones para estimar
Las siguientes son recomendaciones para estimar un proyecto de migración
• Explicar al usuario que migrar, no es restructurar el sitio ( menus, nuevos contenidos, nuevo workflow)
• Explicar al usuario que migrar no es hacer un theme y que todo se vea bien inmediatamente
• Explicar que si no pagan la edición del contenido, eso no entra en la migración
Drupal Camp | Guatemala 2010
Presentation preparada por:Eduardo Garcia
Drupal Camp | Guatemala 2010
©Anexus IT
Top Related