Project

General

Profile

Bug #8490

Copiar - Realizar Backup de un curso después de una migración de la 1.9.10 a 1.10.8

Added by Manuel Valls about 4 years ago. Updated about 4 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
15/11/2016
Due date:
% Done:

0%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Buenos días,

He realizado la migración de la versión 1.9.10 a la versión 1.10.8. Si copio un curso que ya existía en la versión antigua, no hay problema a la hora de realizar el backup, eliminado, copia a otro curso. El problema viene cuando hago la siguiente secuencia de pasos:

1) Creo un nuevo curso (todo OK)
2) Copio o importo los datos de un curso existente en la versión 1.9 en el nuevo curso (todo Ok)
3) Creo un nuevo curso (todo OK)
4) Copio o importo los datos del curso nuevo del paso 1 (ERROR) -> Pongase en contacto con el administrador

He revisado el log y el error que se imprime al realizar el coopiado es:

[15-Nov-2016 09:50:01 UTC] An exception occurred while executing 'SELECT * FROM c_link_category WHERE c_id = 72 AND id = ':
SQLSTATE42000: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 2

Los datos de la base de datos son:
- chamilo_database_version 1.9.0.18715
- mysql_get_client_info() mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
- mysql_get_proto_info() 10
- mysql_get_server_info() 5.5.5-10.0.28-MariaDB
- mysql_get_host_info() Localhost via UNIX socket

Adjunto imagen con la estructura de la tabla c_link_category.

Es urgente porque necesito crear cursos que van emepezar el próximo Diciembre.

Como siempre, muchas gracias por vuestra ayuda y colaboración.


Files

IMG_0885.PNG (274 KB) IMG_0885.PNG Estructura de la tabla c_link_category Manuel Valls, 15/11/2016 12:57
bd_chamilo.PNG (163 KB) bd_chamilo.PNG Manuel Valls, 24/11/2016 18:44
CourseBuilderClass.PNG (54.7 KB) CourseBuilderClass.PNG Manuel Valls, 24/11/2016 18:44

History

#1

Updated by Manuel Valls about 4 years ago

Buenas tardes,

Investigando un poco he encontrado el error que se está produciendo. Cuando intentamos realizar un backup se llama al metodo build de la clase CourseBuilder (CourseBuilder.class.php). Este metodo llama a cada una de las funciones build de cada herramienta (build_documents, build_forums, etc). El problema que tengo yo, es al lamar a la función build_links. Entra por el else, ya que no hay sessiones, y ejecuta la consulta:

SELECT l.id, l.title, l.url, l.description, l.category_id, l.on_homepage
FROM c_link l, c_item_property p
WHERE l.c_id =6
AND p.c_id =6
AND p.ref = l.id
AND p.tool = 'link'
AND p.visibility !=2
AND (
l.session_id =0
OR l.session_id IS NULL
)
ORDER BY l.display_order

El problema que yo tengo es que la consulta devuelve registros con el campo category_id a nulo, y al ejecutar el código:

 while ($obj = Database::fetch_object($db_result)) {

            $link = new Link(
                $obj->id,
                $obj->title,
                $obj->url,
                $obj->description,
                $obj->category_id,
                $obj->on_homepage
            );
            $this->course->add_resource($link);

            +*if (!empty($courseId)) {
                $res = $this->build_link_category($obj->category_id, $courseId);
            } else {
               $res = $this->build_link_category($obj->category_id);
            }*+

            if ($res > 0) {
                $this->course->resources[RESOURCE_LINK][$obj->id]->add_linked_resource(
                    RESOURCE_LINKCATEGORY,
                    $obj->category_id
                );
            }

Provoca un error en la llamda a $this->build_link_category($obj->category_id, $courseId); porque la categoria es nula.

Mi cuestión es: Los enlaces pueden tener categoría Nula?, si es afirmativo tendríais que solucionarlo para que comprobara la categoría.

Os adjunto imagenes para que os ayude la compresión de la explicación

Also available in: Atom PDF