lareferencia / dspace-stats-collector

Sends repository usage statistics events to Matomo
Other
13 stars 2 forks source link

Problema con el id al procesar estadísticas de un DSpace >=6 con ids legacy #27

Open santit96 opened 2 years ago

santit96 commented 2 years ago

Puede pasar que para un repo que se encuentra en una versión de DSpace >= 6, y que se haya actualizado desde una versión 5 o anterior, no se hayan migrado bien algunos ids de las estadísticas generadas en la version <= 5. Es esas versiones no se usaba el uuid, y para migrar esas estadísticas para que usen el uuid se debe correr la tarea /bin/dspace solr-upgrade-statistics-6x. Pero, como bien dice la documentacion de DSpace, a veces el id legacy no se puede migrar correctamente a uuid y la tarea setea como id para ese registro "xxxx-unmigrated" en donde xxxx es el id legacy. Ej:

imagen

Cuando el stat collector se encuentra con uno de esos id legacy mal migrados, falla con una excepción como la siguiente:

imagen

lareferencia commented 2 years ago

Hola @santit96, buen caso este, no lo tenía en el radar. Pregunta: que pasa con los items a nivel de la base de datos??? Hay forma mapear ese id entero a su correspondiente en la bd. De otra manera lo único que se me ocurre es testear por uuid valido antes de hacer las queries en las variantes que usan uuid. De esa manera salvamos este caso y otros posibles. Qué opinas?

santit96 commented 2 years ago

Buenas, ahi estuve chqueando la base de datos y solr y al parecer si en solr el id es de la forma -unmigrated, entonces no hay una correspondencia con un item en la base de datos, es decir ID no aparece en la base de datos, entonces en ese caso creo que debería ignorarse el registro.

Hay otro caso que es el de los bitstreams, ahí encontré estadísticas de solr en cic digital que no tienen uuid como id, sino que tienen el id legacy:

imagen

En esos casos SI encontré en la base de datos el registro con el uuid correspondiente a ese id legacy:

imagen