Migrando a Drupal desde otro(s) CMS Guía de supervivencia Drupal Camp | Guatemala 2010
Migrando a Drupal desde otro(s) CMS Guí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 El problema de la migración.
Drupal Camp | Guatemala Herramientas disponibles Drupal Camp | Guatemala 2010
3. Cuando las herramientas fallan!!! MySQL Migration Toolkit
Drupal Camp | Guatemala 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 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 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 Cuando las herramientas fallan!!! Creando Node Revisions //Insert node revisions //Set the initial node id :=20; INSERT INTO drupal_db.node_revisions(nid,uid,title,body,timestamp,format) + 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 Cuando las herramientas fallan!!! Creando Nodes //Insert nodes //Set the initial node id :=20; INSERT INTO bridalgu_d6db.node(vid,type,uid,status,title,created) + 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 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 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 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 Cuando las herramientas fallan!!! Crear nodos cck via código Crear nodos content type con campos personalizados puede ser dificil:
Drupal Camp | Guatemala 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 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 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 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 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 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
Preguntas? Drupal Camp | Guatemala 2010
Presentation preparada por: Eduardo Garcia Drupal Camp | Guatemala 2010 ©Anexus IT