Actualización Moodle 2.0. a 2.1.

Actualización Moodle 2.0. a 2.1.

de Javier Hernández Sánchez -
Número de respuestas: 8
Hola a todos.
 
Estoy tratando de actualizar a la última versión de Moodle 2.3. Para ello estoy haciendo las actualizaciones parciales de versión, es decir, 1.9 a 2.0, 2.0 a 2.1, etc.
Para ello partía de una versión 1.9.16. La he actualizado a 2.0.10 y ningún problema.
Ha sido cuando la he intentado actualizar de la 2.0.10 a la 2.1.8 cuando en la parte de "Sistema" me ha volcado este error.
La BBDD es Oracle 10.
 
Debug info: ORA-01722: número no válido
UPDATE m_question_answers SET fraction = :o_newfieldtoset WHERE fraction = :o_fraction
[array (
'o_newfieldtoset' => 
array (
'fraction' => '-0.6666667',
),
'o_fraction' => '-0.66666',
)]
Stack trace:
  • line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown
  • line 268 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->query_end()
  • line 1400 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->query_end()
  • line 1475 of /lib/dml/moodle_database.php: call to oci_native_moodle_database->set_field_select()
  • line 6428 of /lib/db/upgrade.php: call to moodle_database->set_field()
  • line 1418 of /lib/upgradelib.php: call to xmldb_main_upgrade()
  • line 277 of /admin/index.php: call to upgrade_core()

¿A qué puede ser debido este error?¿Cómo lo puedo solucionar?

Un saludo y gracias anticipadas.

Promedio de valoraciones: -
En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de Javier Hernández Sánchez -

Después de chequear el código he visto que el problema está en estas líneas del fichero \lib\db\upgrade.php.

if ($oldversion < 2011060310) {

// In the past, question_answer fractions were stored with rather
// sloppy rounding. Now update them to the new standard of 7 d.p.
$changes = array(
'-0.66666' => '-0.6666667',
'-0.33333' => '-0.3333333',
'-0.16666' => '-0.1666667',
'-0.142857' => '-0.1428571',
'0.11111' => '0.1111111',
'0.142857' => '0.1428571',
'0.16666' => '0.1666667',
'0.33333' => '0.3333333',
'0.333333' => '0.3333333',
'0.66666' => '0.6666667',
);
foreach ($changes as $from => $to) {
$DB->set_field('question_answers',
'fraction', $to, array('fraction' => $from));
}

// quiz savepoint reached
upgrade_main_savepoint(true, 2011060310);
}

 

En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de David Hernández -

Hola Javier,

Pareciera que en tu plataforma se utilizan intensivamente los cuestionarios.

En este caso, antes de pasar de la versión 2.0+ a la 2.1+, debes actualizar el motor de preguntas.

Aquí la información necesaria.

Finalmente, sugiero intentar la mencionado en un servidor de pruebas.

Saludos

En respuesta a David Hernández

Re: Actualización Moodle 2.0. a 2.1.

de Javier Hernández Sánchez -

Pues no.

La verdad es que en el web que lo estoy haciendo es de pruebas. Tengo 2 cursos. Por eso estoy intentando hacer la actualización ahí.

Miro lo que me comentas.

Un saludo y gracias.

En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de Javier Hernández Sánchez -

Creo que era un tema de la codificación del idioma en las variables de php.

Tenía como  NLS_LANG, SPANISH_SPAIN.AL32UTF8.

Creo que por eso no aceptaba los puntos decimales. Al cambiar el NLS_LANG no me ha dado problemas y he actualizado a 2.1.

A ver ahora el paso de 2.1 a 2.2 y el de 2.2 a 2.3.

En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de Javier Hernández Sánchez -

Actualizado a 2.2.5 y sin problemas.

¿Qué versión me recomendais para un servidor de producción?

Pensaba actualizarlo a 2.3.

En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de David Hernández -

Hola Javier,

Es bueno saber que ya solucionaste el problema y genial que compartiste la solución guiño

Por otro lado, lo recomendable para un nuevo proyecto es instalar la última versión disponible.

De hecho en la página de descargas, la primer opción siempre dice algo como:

"and is usually a better choice for production"

A veces le cambian el texto, pero básicamente se menciona que este instalador es el mejor para producción.

El detalle es que a veces los servidores que tenemos no están configurados para satisfacer los requerimientos técnicos del sistema.

Por eso es que desde nuestro punto de vista, la "mejor versión" sería otra (la que podemos usar).

En fin...

Saludos

En respuesta a Javier Hernández Sánchez

Re: Actualización Moodle 2.0. a 2.1.

de Ernesto Fuentes -

Hola Javier, la version estable es 2.3.2. No deberias tener problemas para usarla una etapa de produccion