[FIX] base: do not check dependencies of uninstallable addons
When an installed module is not installable, we don't want to check its dependencies because they may not be available. Erroring out on such dependencies is not needed because the module will not be loaded anyway. On the contrary, such errors prevent starting a database which would otherwise function normally. Such errors occur when doing incremental migrations where it happen that addons are installed (from the previous version) but not migrated yet and therefore not installable. When we migrate lower level dependencies Odoo marks higher level addons as "to upgrade" even if they are not installable. That is usually harmless, except when such addons have dependencies that are themselve not available. This PR fixes that. closes odoo/odoo#73206 X-original-commit: a11e8a32883b0d0deaeb2497daa585eb3d3c686e Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
This commit is contained in:
@@ -673,7 +673,8 @@ class Module(models.Model):
|
||||
i += 1
|
||||
if module.state not in ('installed', 'to upgrade'):
|
||||
raise UserError(_("Can not upgrade module '%s'. It is not installed.") % (module.name,))
|
||||
self.check_external_dependencies(module.name, 'to upgrade')
|
||||
if self.get_module_info(module.name).get("installable", True):
|
||||
self.check_external_dependencies(module.name, 'to upgrade')
|
||||
for dep in Dependency.search([('name', '=', module.name)]):
|
||||
if (
|
||||
dep.module_id.state == 'installed'
|
||||
@@ -686,6 +687,8 @@ class Module(models.Model):
|
||||
|
||||
to_install = []
|
||||
for module in todo:
|
||||
if not self.get_module_info(module.name).get("installable", True):
|
||||
continue
|
||||
for dep in module.dependencies_id:
|
||||
if dep.state == 'unknown':
|
||||
raise UserError(_('You try to upgrade the module %s that depends on the module: %s.\nBut this module is not available in your system.') % (module.name, dep.name,))
|
||||
|
||||
Reference in New Issue
Block a user