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.