This question has been flagged
2 Replies
2687 Views

Hello guys,

When I try to install a module, I get this error: No such external ID currently defined in the system: base.res_config_installer

Do you guys have any idea what the reason behind this is? Thanks a lot in advance!

Here's a log of what's going on:

OpenERP Server Error

Client Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py", line 204, in dispatch response["result"] = method(self, **self.params) File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1132, in call_button action = self._call_kw(req, model, method, args, {}) File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1120, in _call_kw return getattr(req.session.model(model), method)(*args, **kwargs) File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 42, in proxy result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw) File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 30, in proxy_method result = self.session.send(self.service_name, method, *args) File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 103, in send raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 89, in send return openerp.netsvc.dispatch_rpc(service_name, method, args) File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 296, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 626, in dispatch res = fn(db, uid, *params) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 190, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 132, in wrapper return f(self, dbname, *args, **kwargs) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 199, in execute res = self.execute_cr(cr, uid, obj, method, *args, **kw) File "/usr/lib/pymodules/python2.7/openerp/addons/audittrail/audittrail.py", line 532, in execute_cr return fct_src(cr, uid, model, method, *args, **kw) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 187, in execute_cr return getattr(object, method)(cr, uid, *args, **kw) File "/usr/lib/pymodules/python2.7/openerp/addons/base/module/module.py", line 426, in button_immediate_install return self._button_immediate_function(cr, uid, ids, self.button_install, context=context) File "/usr/lib/pymodules/python2.7/openerp/addons/base/module/module.py", line 477, in _button_immediate_function _, pool = pooler.restart_pool(cr.dbname, update_module=True) File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 39, in restart_pool registry = RegistryManager.new(db_name, force_demo, status, update_module) File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 233, in new openerp.modules.load_modules(registry.db, force_demo, status, update_module) File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 354, in load_modules loaded_modules, update_module) File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 256, 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/pymodules/python2.7/openerp/modules/loading.py", line 188, in load_module_graph load_data(module_name, idref, mode) File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 76, in <lambda> load_data = lambda *args: _load_data(cr, *args, kind='data') File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 124, in _load_data tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 959, in convert_xml_import obj.parse(doc.getroot()) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 852, in parse self._tags[rec.tag](self.cr, rec, n) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 810, in _tag_record f_val = self.id_get(cr, f_ref) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 829, in id_get res = self.model_id_get(cr, id_str) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 838, in model_id_get return model_data_obj.get_object_reference(cr, self.uid, mod, id_str) File "/usr/lib/pymodules/python2.7/openerp/tools/cache.py", line 18, in lookup r = self.lookup(self2, cr, *args) File "/usr/lib/pymodules/python2.7/openerp/tools/cache.py", line 46, in lookup value = d[key] = self.method(self2, cr, *args) File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_model.py", line 876, in get_object_reference data_id = self._get_id(cr, uid, module, xml_id) File "/usr/lib/pymodules/python2.7/openerp/tools/cache.py", line 18, in lookup r = self.lookup(self2, cr, *args) File "/usr/lib/pymodules/python2.7/openerp/tools/cache.py", line 46, in lookup value = d[key] = self.method(self2, cr, *args) File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_model.py", line 869, in _get_id raise ValueError('No such external ID currently defined in the system: %s.%s' % (module, xml_id)) ValueError: No such external ID currently defined in the system: base.res_config_installer

Avatar
Discard
Best Answer

It is because there is no res_config_installer XML ID.  Check the module that you are installing whether there is a call to search for base.res_config_installer.  I think it should be base.model_res_config_installer instead.

Avatar
Discard
Author Best Answer

John Doe solved this problem. Here's the solution:

 

What follows will get you pass the error message that you mentioned but it does not mean that your database is "clean". From the fact that you are missing base.res_config_installer view which is provided by base (server), I would suggest that someone more knowledgable take a look into your database and assess the damage. Activate developer's mode to ease the process. Go to Settings >> Technical >> User Interface >> Views. Search for a view that is named "Inheritable view for installer objects" for res.config.installer model. Note that Database ID. Go to Settings >> Technical >> Sequence and Identifiers >> External Identifiers. Create a new record with the following entries: Module: base, External Identifiers: res_config_installer, Model Name: ir.ui.view, Record ID: the database ID that you have noted above. Save it. You can now try the installation again.

Avatar
Discard

OK, I found the base.res_config_installer. It is refering to a view that is defined in the server's addons. It is very rare case that this may disappear. Could you check from Settings >> Technical >> Sequences & Identifiers >> External Identifiers whether there is a record refering to res_config_installer? It does not, it is best that you upgrade from base module as it means something is wrong with the overall configuration. But be careful because upgrading from base WILL change a lot of things, so if your database is a production database, I would sugest that you contact someone more knowledgeable to take a more careful look into the database and try to fix it. That person would need to have access to your database.

Author

I checked and found out that the only res_config_installer entry that I have is as follows: Complete ID: base.model_res_config_installer Module: base External identifier: model_res_config_installer Record name:model_res_config_installer Model name: ir.model Is this what we are looking for?

No, that means you're missing at least 1 record that has res_config_installer in the name. Try upgrading from base to resolve that issue as I have mentioned before ONLY if it is not a production database.

Author

I created a new database on my server and found out that it has an additional field called res.config.installer , you are right. I tried upgrading the base module on a backup database and it messed up everything, so it does not look like a solution to me. I am keeping the prod database as is, but now unable to install anything new. Do you have any other suggestions? Is it possible to manually create this entry?

What follows will get you pass the error message that you mentioned but it does not mean that your database is "clean". From the fact that you are missing base.res_config_installer view which is provided by base (server), I would suggest that someone more knowledgable take a look into your database and assess the damage. Activate developer's mode to ease the process. Go to Settings >> Technical >> User Interface >> Views. Search for a view that is named "Inheritable view for installer objects" for res.config.installer model. Note that Database ID. Go to Settings >> Technical >> Sequence and Identifiers >> External Identifiers. Create a new record with the following entries: Module: base, External Identifiers: res_config_installer, Model Name: ir.ui.view, Record ID: the database ID that you have noted above. Save it. You can now try the installation again.

Author

John Doe (I wish I knew your actual name haha). I don't know how to thank you for solving my problem... You are definitely an OpenERP master!!! Thank you very much for all your help and time spent here!

Glad I can of be any help.