Cómo desinstalar un módulo personalizado

733 views
Skip to first unread message

Tomás Pereira Cruz

unread,
Oct 7, 2015, 5:48:25 PM10/7/15
to Usuarios Odoo / OpenERP en España
Hola a todos,

He instalado un módulo personalizado en el sistema de desarrollo y me da error al reiniciar el servicio.

No puedo acceder al interfaz de ninguna de las maneras, ni tampoco por etherpeek por la consola, el servicio no se levanta. Con lo que tendré que viajar por la base de datos.

Alguien sabe que podría hacer? No me vale volver a reinstalar una nueva base de datos dado que la de desarrollo es una copia de producción y no puedo perder los datos.

Muchas gracias

cubells

unread,
Oct 7, 2015, 10:48:12 PM10/7/15
to openerp-s...@googlegroups.com
El 07/10/15 a les 23:48, Tomás Pereira Cruz ha escrit:
Mira a ver si entrando a la base de datos y desactivando el módulo en la
tabla ir_module_module te permite por lo menos entrar.

--
Atentament, cubells.
--

Tomás Pereira Cruz

unread,
Oct 8, 2015, 11:58:25 AM10/8/15
to Usuarios Odoo / OpenERP en España
Cubells,
Gracias por la aportación.
Sí, después de 3 días instalandolo y desinstalandolo, ese era un de los primeros pasos. Como no encontré ninguna solución por ningún foro, ni en Odoo, todos decían de crear una nueva base de datos y empezar de cero, ya lo hice con una por haber realizado una actualización que fallo y no sabía que módulo fallaba. Esta vez estaba decidido a recuperarla porque sabía que módulo fallaba al ser el único que había instalado recientemente.

Pues bien. El nombre del modulo es "crm_extend_helpdesk" y depende de "crm_helpdesk", paso a describirlo:
1ero, desde la línea de comandos y conectados al Postgresql, marcarlo como desinstalado en la DB, "update ir_module_module set state='uninstalled' where name='crm_extend_helpdesk';", ya sé que no se debe poner 'uninstalled' sino 'to remove', pero no me funcionó.
2do, borrar las columnas con datos antiguos del módulo creado, "\d crm_helpdesk;" en este caso erán
"ALTER TABLE crm_helpdesk
  DROP COLUMN partner_state_id
, DROP COLUMN partner_zip
, DROP COLUMN partner_city
;"
3ro, después de hacer una busqueda en el dump y analizando la estructura de la base de datos y ficheros del sistema, borramos los campos del módelo, primero los descrubimos y luego a borrarlos:
"select model,name from ir_model_fields where model ilike '%helpdesk%';
select name, model, model_id, state from ir_model_fields where model = 'crm.helpdesk' and name = 'partner_state_id';
select name, model, model_id, state from ir_model_fields where model = 'crm.helpdesk' and name = 'partner_city';
select name, model, model_id, state from ir_model_fields where model = 'crm.helpdesk' and name = 'partner_zip';"
4o, borramos el registro en ir_model_data con:
"select name, module, model from ir_model_data where name ilike '%extend_helpdesk%';
delete from ir_model_data where name = 'module_crm_extend_helpdesk';"
5o, Borramos los registros relacionados con los campos del modelo en "ir_model_constraint":
"select name, model, module from ir_model_constraint where name ilike '%_helpdesk%';
delete from ir_model_constraint where name = 'crm_helpdesk_partner_state_id_fkey' and model = '444';
delete from ir_model_constraint where name = 'crm_helpdesk_partner_service_provider_fkey' and model = '444';"
6o, desactivamos los views relacionados con el módulo heredado y seguro que ya podemos acceder y por último borramos dichos views
7o, reiniciamos y la base de datos está lista y limpia. Después de analizar el dump no descubro ni rastro de los campos o el módulo.

Si vuelvo a reinstalarlo se reproduce el error y vuelvo a pasar el script y vuelta a estar limpia.
Dónde está el error??
Durante la creación del módulo en el fichero __openerp__py se me colo una "c" en vez de una "s" en  "'depends': ['base','crm_helpdesk']," por eso no podía ni actualizar ni desinstalar al no poder borrar los campos del módelo en la DB.
Con las dependencias correctamente ya pude instalar, usar y desinstalar el módulo correctamente. Eso en la base de datos de desarrollo. Sin embargo en el entorno de prueba, actualicé el módulo y lance el update desde la linea de comandos y funcionó correctamente sin tener que ir a la DB.

Espero que sirva a alguno y no tengáis que empezar de cero y rehacer toda la base de datos.

Reply all
Reply to author
Forward
0 new messages