Skip to Content
Menu
This question has been flagged
2 Replies
5929 Views

I've been struggling to reinstall the `stock` (inventory management) module for a while now. Last time I installed it, Odoo crashed in the process, and since, I can't get it installed. As many of you know, several important functions (editing products, viewing sales reports) depend on this. We've been out of these for about 2 months now as I just can't figure it out. I've tried posting a bug report on github without avail.


3/31/17: Solved part of it...changed owner of report_stock_lines_date to odoo and now I'm getting a new error:


The operation cannot be completed, probably due to the following:
- deletion: you may be trying to delete a record while other records still reference it
- creation/update: a mandatory field is not correctly set

[object with reference: stock_picking - stock.picking]


From the command line, odoo.py spits out:

IntegrityError: insert or update on table "stock_move" violates foreign key constraint "stock_move_picking_id_fkey"
DETAIL: Key (picking_id)=(1) is not present in table "stock_picking".



Here's the most recent traceback I get when trying to install `stock` from the gui:

Odoo Server ErrorTraceback (most recent call last):

  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 648, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 685, in dispatch result = self._call_function(**self.params) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 321, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 118, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 314, in checked_call result = self.endpoint(*a, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 964, in __call__ return self.method(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 514, in response_wrap response = f(*args, **kw) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 892, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 880, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 250, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 459, in button_immediate_install return self._button_immediate_function(cr, uid, ids, self.button_install, context=context) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 250, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 534, in _button_immediate_function registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True) File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 386, in new openerp.modules.load_modules(registry._db, force_demo, status, update_module) File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 340, in load_modules loaded_modules, update_module) File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 239, in load_marked_modules loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 137, in load_module_graph init_module_models(cr, package.name, models) File "/usr/lib/python2.7/dist-packages/openerp/modules/module.py", line 304, in init_module_models obj.init(cr) File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 250, in wrapper return old_api(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/addons/stock/report/report_stock.py", line 21, in init drop_view_if_exists(cr, 'report_stock_lines_date') File "/usr/lib/python2.7/dist-packages/openerp/tools/sql.py", line 5, in drop_view_if_exists cr.execute("DROP view IF EXISTS %s CASCADE" % (viewname,)) File "/usr/lib/python2.7/dist-packages/openerp/sql_db.py", line 141, in wrapper return f(self, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/openerp/sql_db.py", line 220, in execute res = self._obj.execute(query, params)

ProgrammingError: must be owner of relation report_stock_lines_date


Any ideas? I'm at wits end with this bug.

Avatar
Discard
Best Answer

Try this in your postgresql server:

ALTER TABLE report_stock_lines_date OWNER TO odoo;

Or, to apply this to all tables, you have to identify the previous owner somehow.

select t.table_name, t.table_type, c.relname, c.relowner, u.usename from information_schema.tables t join pg_catalog.pg_class c on (t.table_name = c.relname) join pg_catalog.pg_user u on (c.relowner = u.usesysid) where t.table_schema='public';

Then, assuming the tables are all currently owned by 'root' and you want to reassign them to 'odoo', you can do the following:

REASSIGN OWNED BY root TO odoo;

HTH.

Avatar
Discard
Author Best Answer

Anyone?

Avatar
Discard