You need to enable JavaScript to run this app. Odoo14报base.user_admin无匹配唯一ID记录 误删ID=2的admin用户如何修复
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14报base.user_admin无匹配唯一ID记录 误删ID=2的admin用户如何修复

故障根因说明

该报错本质是Odoo14系统全局硬编码引用的外部标识符base.user_admin绑定的目标记录缺失,系统在加载模块、执行权限校验、运行内置业务流程时,无法定位到该标识符对应的用户记录,直接抛出校验异常。经确认触发原因是误删除了系统内置约定ID为2的admin管理员用户,连带删除了对应的外部标识符映射关系。

故障核验步骤
  • 连接目标Odoo实例的PostgreSQL数据库,依次执行查询确认数据状态:
    • 查询用户表校验删除状态:SELECT id, login, name FROM res_users WHERE id = 2; 无返回值即对应用户已被删除
    • 查询外部标识符映射表:SELECT * FROM ir_model_data WHERE module = 'base' AND name = 'user_admin'; 正常状态下会返回关联res_users.id=2的映射记录,用户被级联删除后该映射通常也会同步消失
    • 排除异常绑定:执行SELECT * FROM ir_model_data WHERE name = 'user_admin',确认没有其他自定义模块误占用该标识符造成定位错误
无历史备份的修复方案

方案1:数据库层面直接重建匹配系统约定的admin用户

  • 第一步:补全关联的合作伙伴记录(如果原ID=2的合作伙伴记录已被删除)
    执行SQL插入res_partner表的核心记录:
INSERT INTO res_partner (id, name, email, active, create_date, write_date, create_uid, write_uid)
VALUES (
  2,
  'Administrator',
  '你的管理员绑定邮箱',
  true,
  now(),
  now(),
  1,
  1
);
  • 第二步:插入强制ID为2的用户记录
    根据当前res_users表的实际字段结构补全必填值,核心SQL如下:
INSERT INTO res_users (id, login, password, partner_id, active, create_date, write_date, create_uid, write_uid)
VALUES (
  2,
  'admin',
  '替换为你实际使用的bcrypt格式密码哈希',
  2,
  true,
  now(),
  now(),
  1,
  1
);

如果不知道对应格式的密码哈希,可以直接从其他正常管理员用户的res_users表中复制现有password字段值,登录后再重置为自定义密码即可

  • 第三步:补回缺失的外部标识符映射
    让系统能通过base.user_admin定位到刚重建的用户:
INSERT INTO ir_model_data (module, name, model, res_id, noupdate, create_date, write_date)
VALUES (
  'base',
  'user_admin',
  'res.users',
  2,
  true,
  now(),
  now()
);
  • 第四步:同步完整系统权限
    将数据库中现存最高权限账号(一般为最早创建的ID=1的用户)拥有的权限组同步给刚重建的admin用户:
INSERT INTO res_groups_users_rel (uid, gid)
SELECT 2, gid FROM res_groups_users_rel WHERE uid = 1;

如果ID=1的用户已被删除,手动将系统内置的设置/技术设置权限组关联给ID=2的用户即可获得全权限。

方案2:通过启动参数触发内置数据重载完成修复

如果担心直接操作数据库影响数据一致性,可通过Odoo内置启动流程自动补全缺失映射:

  • 临时调整数据库序列避免ID冲突:执行ALTER SEQUENCE res_users_id_seq RESTART WITH 3;,确保后续新建用户从ID=3开始分配,预留ID=2给系统admin
  • 以带初始化base模块参数的方式启动Odoo服务:执行odoo-bin -c 你的实例配置文件 --stop-after-init --init=base,系统会在启动校验阶段自动检测到base.user_admin的映射缺失,按照内置定义重建ID=2的用户记录与映射关系
  • 启动完成后,登录后台在用户管理界面为重建的admin账号设置自定义密码即可正常使用
修复后校验与注意事项
  • 重启Odoo服务,查看运行日志确认不再抛出No record found for unique ID base.user_admin的异常
  • 验证核心业务流程:
    • 用重建的admin账号正常登录后台,确认所有菜单、功能入口可正常访问
    • 检查定时任务、邮件规则、工作流中硬编码指定base.user_admin作为执行人的流程,确认记录关联正常
    • 执行一次自定义模块的升级操作,确认模块加载阶段的外部标识符校验可正常通过
  • 系统硬编码全局引用ID=2的admin用户对应的base.user_admin标识符,修复完成后禁止直接删除该用户,否则会触发全域功能异常

内容的提问来源于stack exchange,提问作者Dipen Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 08:54:05