Error al actualizar account luego de instalar account_management

Bug #940463 reported by Juan José Pimentel (Digisolution)
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
account-management
Won't Fix
Undecided
Unassigned

Bug Description

revno: 399
revision-id: <email address hidden>
parent: <email address hidden>
author: Vauxoo <email address hidden>
committer: <email address hidden> <email address hidden>
branch nick: account-management
timestamp: Fri 2012-02-03 17:49:34 -0530

Si se instala esta revision de account management y se trata de actualizar account se produce el error anexo y la base de datos queda inservible.

[2012-02-24 12:06:45,811][digisolution_4] ERROR:db.cursor:bad query: DROP view account_invoice_report
Traceback (most recent call last):
  File "/opt/openerp/development/6.0/server/bin/sql_db.py", line 131, in execute
    res = self._obj.execute(query, params)
InternalError: cannot drop view account_invoice_report because other objects depend on it
DETAIL: view account_account_records depends on view account_invoice_report
HINT: Use DROP ... CASCADE to drop the dependent objects too.

Traceback (most recent call last):
  File "./openerp-server.py", line 121, in <module>
    db,pool = pooler.get_db_and_pool(dbname, update_module=tools.config['init'] or tools.config['update'], pooljobs=False)
  File "/opt/openerp/development/6.0/server/bin/pooler.py", line 39, in get_db_and_pool
    addons.load_modules(db, force_demo, status, update_module)
  File "/opt/openerp/development/6.0/server/bin/addons/__init__.py", line 883, in load_modules
    processed_modules.extend(load_module_graph(cr, graph, status, report=report, skip_modules=processed_modules))
  File "/opt/openerp/development/6.0/server/bin/addons/__init__.py", line 719, in load_module_graph
    init_module_objects(cr, package.name, modules)
  File "/opt/openerp/development/6.0/server/bin/addons/__init__.py", line 420, in init_module_objects
    obj.init(cr)
  File "/opt/openerp/development/6.0/modules/account/report/account_invoice_report.py", line 79, in init
    tools.drop_view_if_exists(cr, 'account_invoice_report')
  File "/opt/openerp/development/6.0/server/bin/tools/sql.py", line 25, in drop_view_if_exists
    cr.execute("DROP view %s" % (viewname,))
  File "/opt/openerp/development/6.0/server/bin/sql_db.py", line 78, in wrapper
    return f(self, *args, **kwargs)
  File "/opt/openerp/development/6.0/server/bin/sql_db.py", line 131, in execute
    res = self._obj.execute(query, params)
psycopg2.InternalError: cannot drop view account_invoice_report because other objects depend on it
DETAIL: view account_account_records depends on view account_invoice_report
HINT: Use DROP ... CASCADE to drop the dependent objects too.

Este error no se genera en la revision 397

Para reproducir este error hacer lo siguiente:

Instalar los modulos basicos de OpenERP

Instalar account_management

Actualizar account

Revision history for this message
Juan José Pimentel (Digisolution) (juan-pimentel) wrote :
Revision history for this message
Miguel Delgado (Vauxoo) (miguel-delgado07) wrote :

Esto no es un bug como tal, debido a que es una cuestión del ORM en la actualizacion de las vistas sql al momento de hacer el DROP
no elimina las incidencias sobre esa vista, es decir no hace borrado en cascada.

Solucion:

Ingresar a la BD y borrar la vista con el nombre account_account_records manualmente, y posteriormente actualizar el modulo account esto resuelve el problema ya que la vista se esta creando como nueva

Changed in account-management:
status: New → Invalid
Changed in account-management:
status: Invalid → Confirmed
status: Confirmed → Opinion
Changed in account-management:
status: Opinion → Won't Fix
Revision history for this message
Francisco Rignanese (frignanese) wrote :

Hola a todos,

Yo tengo el mismo problema que aquí se describe. Traté con la recomendación de Miguel Delgado pero el problema persiste.

Específicamente, borré manualmente el registro de la tabla ir.ui.view con name="account.account.records.tree" del objeto model="account.account.records" (que es lo que más se le parece).

No encontré un registro con el nombre "account_account_records"! Quizás estoy viendo la tabla que no es? Cuál podría ser?

De antemano, gracias por cualquier comentario

Revision history for this message
Francisco Rignanese (frignanese) wrote :

Resuelto con la observación de Miguel Delgado. Gracias

Ejecutar con el usuario postgres

psql dbname;
drop view account_account_records;

Y listo. Hay que hacerlo cada vez que se quiera actualizar el módulo account

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.