Odoo13安装hr_payroll_community v13时出现External ID未找到错误
解决Odoo13安装hr_payroll_community v13时External ID未找到的问题
原因排查及修复方案
检查模块包完整性
先确认下载的hr_payroll_community v13模块包未损坏,对比能正常安装的测试库模块文件,查看本地模块的data或views目录里是否存在定义module_category_hr_payroll_community的XML文件(一般是和ir_module_category相关的配置文件)。如果文件缺失,重新下载完整的v13版本模块包。手动补全缺失的数据库记录
要是模块文件没问题但仍报错,直接在数据库中插入缺失的分类记录:- 登录PostgreSQL,执行SQL(替换
your_db_name为实际数据库名):INSERT INTO ir_module_category (name, description, sequence, website_id) VALUES ('HR Payroll Community', 'Community module for HR Payroll', 100, NULL) RETURNING id; - 将返回的ID替换到下方语句中,插入External ID关联:
INSERT INTO ir_model_data (name, model, res_id, module, noupdate) VALUES ('module_category_hr_payroll_community', 'ir.module.category', [上面返回的ID], 'hr_payroll_community', True);
执行完成后重新尝试安装模块。
- 登录PostgreSQL,执行SQL(替换
清理缓存并重新加载模块
- 删除Odoo目录下的
__pycache__文件夹,以及模块自身的缓存文件。 - 进入Odoo后台「应用」模块,点击「更新应用列表」,确保模块被系统正确识别。
- 重启Odoo服务,再尝试安装hr_payroll_community v13。
- 删除Odoo目录下的
排查自定义模块冲突
先禁用你开发的自定义模块,单独安装hr_payroll_community v13,确认是否是自定义模块提前引用了该External ID导致加载顺序出错。如果单独安装成功,再逐个启用自定义模块,记得在自定义模块的__manifest__.py中添加'depends': ['hr_payroll_community'],确保依赖顺序正确。对比测试数据库配置
拿能正常安装的测试库和当前库做对比:- 检查测试库是否预装了某些依赖模块(比如基础hr模块是否装全并更新),当前库是否缺失这些模块。
- 对比两个库的
ir_module_category和ir_model_data表,将测试库中与hr_payroll_community相关的记录同步到当前库。
内容的提问来源于stack exchange,提问作者Qusai
相关产品推荐
相关产品推荐

