Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
Número de respuestas: 5Estoy actualizando una 1.5.4+ a 1.6.4+. La actualización que he hecho no es del todo estandar y quisiera preguntaros si puedo tener algun problema en un futuro.
El moodle usa el mysql como gestor de base de datos, su base de datos ocupa 3 GB, mi problema estaba que tardaba mucho en hacer la actualización, unas 5 horas en la primera parte de la actualización ( modificación de la base de datos, creación de nuevas tablas ... ) y entre 6 y 10 horas en convertirla a UTF8.
Bueno, para evitar esta demora, he hecho lo siguiente:
1. Crear la base de datos con la codificación UTF-8
2. Volcar la base de datos de la 1.5.4+ en latin1 o ISO-8859-1 en su interior.
3. Proceder con la primera parte de la actualización ( unas 5 horas )
4. Cuando he acabado, no tenia en el módulo de administración el acceso al script de migración a UTF-8, se veia el area de contenido de un curso en la codificación ISO-8859-1 ( o sea caracteres raros ), pero los recursos en principio se ven perfectamente en UTF-8.
5. He solucionado el problema del area de contenidos, vaciando todos los campos modinfo de todos los cursos y se ha rehecho con la codicació correcta.
6. El estado de la base de datos es que tiene tablas con codifición ISO-8859-1 y tablas en UTF-8
Mi pregunta, despues de este rollo, esta en, puedo tener problemas al tener tablas en dos codificaciones diferentes para trabajar con ella en un uso normal o cuando actualice a la 1.7 ? Un solución que he pensado es en cambiar la codificacion de todas las tablas en ISO-8859-1 a UTF-8 con un ALTER TABLE, incluso los campos de todas estas tablas.
Puede provocar problemas con los contenidos de estas tablas al cambiar la codificacion ?
Joan Vicent Navarro Ferreres
Universitat Rovira i Virgili
Servei de Recursos Educatius
Ctra. de Valls, s/n.
43007 Tarragona
977 558252
Re: Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
Hola Joan -
para sitios grandes donde sabes que has usado un codepage en particular, lo que yo personalmente recomiendo es
Dump out original DB:
mysqldump mydb.sql
Convert character encoding
iconv -f yourcodepage -t UTF8 mydb.sql > mydbunicode.sql
If you are having problems with smart quotes and funny stuff coming from Windows users, try the Windows codepage
iconv -f CP1252 -t UTF8 mydb.sql > mydbunicode.sql
or try the
-c
parameter to iconvReplace all the table definitions in the SQL file to say utf-8, and also there should be a
SET NAMES
line early in the file that must sayUTF-8
.Import the transcoded SQL into a new, UTF8, database.
Set this so that Moodle realises the DB doesn't need migrating.
UPDATE mdl_config SET value='1' WHERE name='unicodedb'"
Almost done now...
Change config.php to use newdb
log in as admin to Moodle, hit the /admin page
Run rebuild.php - which looks like:
require_once 'config.php'; require_once 'course/lib.php'; rebuild_course_cache();
Esta es la tecnica que usamos nosotros con bases de datos grandes en Postgres. La adapte "al vuelo" para MySQL, pero queda en tus manos entender la documentacion de mysqldump mysqlrestore y iconv porque estoy mas que seguro que al "plan" le faltan algunos parametros aqui y alla
Si funciona, les pagas unas cervezas a un tio que se llama Luke Hudson, que se ha quemado las pestanhas para resolver todo esto.
Abrazos!
Re: Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
lo que comenta Martín es perfecto si estás 100% seguro que solo has utilizado un encoding en tu sitio.
Una pequeña puntualización sobre lo anterior es que el proceso dump->iconv->import es que el proceso hay que realizarlo después de haber realizado la actualización de 1.5.x a 1.6.x, ergo los pasos quedan:
1) Actualización 1.5 -> 1.6
2) dump -> iconv -> import (importante que la BD de destino sea UTF-8!!!!)
3) config, rebuild cache... y a jugar con TODO en UTF-8 (no es buena idea dejar partes en latin1 y partes en utf-8.
Ciao
Re: Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
Hare una prueba con tus indicaciones ( tardaré horrores, que la base de datos es monstruosa de grande).
Os informaré
Re: Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
We tried to use the approach Martin L suggested but our mysql dump file was too large and iconv can't handle that large of a file. Any suggestion? thanks!
Re: Actualizacion 1.5.4+ a 1.6.4+ un poco extraña
My solution: to divide the dump of the mysql in several files (a file - a table)