Experiencia migración: MySQL4 -> MySQL5

Experiencia migración: MySQL4 -> MySQL5

de José Gregorio Díaz Unda -
Número de respuestas: 0
Saludos.

Comparto esta situación y la solución:

Los pasos generales fueron:

1) Crear del escenario de producción en una máquina nueva con el MySql 5 y  el PHP4

2) Migrar la migración de 1.5.2 -> 1.6.1

3) Ajustes de la migración de prueba.

4) Documentación del proceso.

5) Migración del servidor de producción.

Tengo que realizar la migración del servidor Moodle de mi Universidad de la versión 1.5.2 (2005060220)  a la 1.6.1. Este nuevo servidor tendrá una IP diferente del anterior así como posiciones diferentes para el directorio moodle y moodledata.

En el servidor viejo las características eran:

- IpServidor:    192.168.0.100
- Moodle:         /usr/moodle/MoodleViejo
- MoodleData: /usr/moodledataviejo

Hice un respaldo total de la base de datos DbMoodleViejo en un script llamado db.sql con el siguiente comando:

#mysqldump -u UsuarioDeLaBd -p -C -Q -e -a DbMoodleViejo > db.sql

Para crear el escenario de prueba antes de la migración, en otra máquina con MySql 5 y PHP Version 5.1.2 las características son:

- IpServidorPrueba:     10.10.10.100
- Moodle viejo en:         /var/www/MoodleNuevo
- MoodleDataViejo en:  /var/MoodleDataNuevo
- BaseDeDatos en:      /root/bd.sql

Dado que las rutas en el servidor de prueba son diferentes a las establecidas en el servidor de producción, para evitar enlaces rotos sustituí las cadenas de texto correspondientes en el archivo bd.sql con un programa llamado "nano" (editor de textos en GNU/Linux":

#nano db.sql

- Buscar "192.168.0.100" y sustituir por "10.10.10.100" en todo el script.
- Buscar "/usr/moodle/MoodleViejo" y sustituir por "var/www/MoodleNuevo" en todo el script.
- Buscar "/usr/moodledataviejo" y sustituir por "/var/MoodleDataNuevo" en todo el script.

Guardé el script como bd-modificado.sql y lo cargué en una base de datos nueva en el servidor de pruebas:

#mysql BdPrueba < bd-modificado.sql

Luego edité el archivo config.php con los nuevos valores. También cree un usuario nuevo para acceder la base de datos BdNueva.

Cuando probé el escenario, me di cuenta que todo estaba bien excepto porque en los foros de todos los cursos que existían NO APARECÍAN LOS POSTS.

Luego de mucho pelear con la codificación busqué apoyo en el foro en español pero no tuve suerte. Decidí entonces irme al otro lado del continente y busqué en el foro en inglés.....SORPRESA!..a alquien le pasó algo similar y consistía en que cuando se usa la versión de MySQL 5 para el 1.5.2, requiere de un cambio en el archivo /MoodleNuevo/mod/forum/lib.php en las líneas 1296 y 1298 agregando unos paréntesis. Las líneas quedarían como sigue:

   1296             FROM ({$CFG->prefix}forum_discussions d,
   1297                        {$CFG->prefix}forum_posts p,
   1298                        {$CFG->prefix}user u )

El link donde me apoyé para este cambio es:
http://moodle.org/mod/forum/discuss.php?d=25918

Luego de este cambio, aparecieron los POSTS en los foros.

El siguiente paso es simular la migración, así que estaré actualizando este POST próximamente.

Promedio de valoraciones: -