Hola gente, tengo por delante un reto que no sé si será posible y es la migración de los datos de una Web que está construida con Drupal 4.5.6 a la versión 6.2. En principio con los usuarios no he tenido demasiado problema porque las tablas son muy parecidas, el problema ha venido con las noticias y el foro. ¿Alguien me puede echar una manita? ¿existe alguna utilidad para migrar versiones tan antiguas? ... Gracias Vicente
|
|||
Mi experiencia no viene de tan atrás
Mis migraciones recientes son entre versiones 5.x y no son tan viejas...
Ahora, eso si, una cosa que tendría en cuenta son los módulos que tienes activados en la versión 4.5.6 y si hay versión estable para la 6.2 pues lo que si que te encuentras, es que muchos de los módulos no están "estable" para la versión 6.2 o directamente no existen.
Puedes mirar en la http://drupal.org pero vamos, me imagino que los pasos a seguir será:
Todo esto, por confirmar, pues tengo que mirarlo. En cualquier caso, en general, por lo menos en migraciones 5.x y 6.x lo que se hace es, después de hacer backup de la base de datos y archivos, desactivar los módulos, copiar los nuevos ficheros de drupal, poner los módulos activados, copiar files y sites, que es donde están los ficheros de imagenes, y sites donde están los de configuración, y ejecutar update.php, para que termine el proceso.
Esto en general, pero déjame que mire algo
Esta introducción a la actualización de drupal es vital
Mirate esta URL, ya que es necesario para poder hacer lo que quieres:
http://drupal.org/upgrade/tutorial-introduction
Imposible
No consigo migrar la versión ya que, según el tutorial, durante la actualización tienes que seleccionar la fecha de tu versión que aparece en el fichero CHANGELOG.txt, en mi caso 31/11/2005, pero esta fecha no aparece en la opción UPDATE de ninguna de las versiones posteriores a la 4.5.6. y si pruebo cualquier otra fecha aunque en principio no aparece ningún error de actualización luego al acceder, por ejemplo a contenido, me aparecen errores con los campos. También he probado con la 4.7 pero ya sigue otra nomenclatura de actualizaciones. Los pasos que he intentado seguir son los que aparecen en Upgrading from Drupal 4.5 to 4.6.3.
¡Socorro!
Coméntanos más datos
- Que versión y que fecha es la que quieres actualizar.
- Con que versión estás probando la actualización
Por que no se si es que estas actualizando directamente contra 6.2 o desde otra. Explica un poco más el escenario de actualización.
Creo funciona
Al final creo que he conseguido que funcione, aunque es una versión 4.5.6 he seleccionado que actualice a partir de la 4.5.0 sin hacer caso a las fechas y he ido corrigiendo los errores que han ido apareciendo. Finalmente he hecho los siguientes pasos (aunque pienso intentar reducirlos) 4.5.6 -> 4.6.0 -> 4.6.11 -> 4.7.0 -> 4.7.11 -> 5.0 -> 5.7 -> 6.2, al final durante el proceso me han aparecido unos pequeños errores no muy difíciles de corregir, lo más problemático ha sido en la actualización a 6.2 que he tenido que revisar los campos para cambiar de latin1 a utf8 ya que algunas palabras no aparecían correctamente.
Gracias por todo
Enhorabuena!!
Solo por curiosidad cuenta un poco los problemas encontrados. El tema de UTF suele ser cañero, y ese es uno de los que intuía que ibas a tener.
Respecto a la 6.2 supongo que sabes que muchos módulos todavía no están para esa versión, por lo que espero que hayas tenido en cuenta el tema a la hora de actualizar, pues te puedes encontrar que no tengas el módulo que quieras.
No estaría nada mal un articulito que podríamos publicar contando la peripecia
Gracias Luismi, de momento
Gracias Luismi, de momento no tengo problema con el tema de los módulos ya que uso solamente los estándar cosa que me ha facilitado muchísimo la actualización. Los problemas, más que nada, son que algunos campos que al actualizar han de ser clave primaria y en las tablas aparecían duplicados, algún cambio de tipo y poco más. Cuando pueda lo publicaré de manera más detalla y a ser posible "paso a paso".
Respecto del UTF, comentar que no me ha aparecido el problema hasta la actualización a 6.2, en la 5.7 estaba todo perfecto. La solución es muy sencilla la encontré aquí. Es un poco tedioso porque tienes que revisar todas las tablas y realizarlo campo a campo pero desde mi punto vale la pena porque los resultados son óptimos.
Para una columna varchar(255) llamada “nombre_columna” en la tabla llamada “tabla_ejemplo”:
ALTER TABLE tabla_ejemplo MODIFY nombre_columna BINARY(255);
ALTER TABLE tabla_ejemplo MODIFY nombre_columna VARCHAR(255) CHARACTER SET utf8;
Para una columna llamada “nombre_columna_text” en la tabla llamada “tabla_ejemplo”:
ALTER TABLE tabla_ejemplo MODIFY nombre_columna_text BLOB;
ALTER TABLE tabla_ejemplo MODIFY nombre_columna_name TEXT CHARACTER SET utf8;
* Nota si el campo es Longtext hay que usar longtext en lugar de text, ya se que es una bobada y todo el mundo lo sabe pero a mi se me despistó y tuve que volver a importar la base de datos (desde una copia actualizada
).
Realmente la opción de modificar directamente los campos varchar no me funcionaba bién porque me añadía caracteres de final de línea hasta completar el tamaño del campo por lo que opté por convertir el campo a text y luego volverlo a convertir a varchar.
ALTER TABLE tabla_ejemplo CHANGE nombre_columna nombre_columna TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ;
ALTER TABLE tabla_ejemplo MODIFY nombre_columna BLOB;
ALTER TABLE tabla_ejemplo MODIFY nombre_columna TEXT CHARACTER SET utf8;
ALTER TABLE tabla_ejemplo CHANGE nombre_columna nombre_columna VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
Una nota importante, he tenido que trabajar en dos máquinas diferentes (virtuales) ya que drupal 4.5.6 no funciona con php5 y drupal 6 tampoco con php4 por lo que en el paso a 6.2 he tenido que cambiar de máquina.
Un saludo.
Muy bien documentada la
Muy bien documentada la solución.
Nos servirá a más de uno que somo s usuarios de Drupal 
Saludos