You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Odoo网页端恢复数据库报错求助:备份正常但恢复失败且无日志

排查Odoo网页端恢复数据库报“Database restore error”的方向

我之前也碰到过类似的诡异问题,结合你描述的情况——备份正常、服务器端恢复没问题但网页端报错且无日志,给你几个针对性的排查步骤:

  • 检查文件上传大小限制
    网页端恢复时,备份文件的上传可能被Nginx或Odoo的配置限制拦截,这种情况有时不会在日志里留下明确记录:

    • Nginx侧:修改配置文件(比如/etc/nginx/nginx.conf或站点配置),确保client_max_body_size设置足够大,比如:
      client_max_body_size 100M;
      
      修改后重启Nginx:sudo systemctl restart nginx
    • Odoo侧:在odoo.conf中设置max_request_size参数(单位为MB),比如:
      max_request_size = 100
      
      重启Odoo服务生效。
  • 验证临时文件目录权限
    Odoo网页端恢复时会先将上传的备份文件存到临时目录(通常是/tmp),如果Odoo运行用户(比如odoo用户)没有该目录的读写权限,会导致恢复失败但日志无输出:

    • 检查/tmp目录权限:ls -ld /tmp,确保其他用户有读写权限(权限应为drwxrwxrwt
    • 若开启了SELinux,可临时关闭测试:sudo setenforce 0,如果恢复正常,再配置SELinux规则允许Odoo访问临时目录。
  • 确认备份文件的兼容性
    虽然pg_dump能直接恢复,但Odoo网页端恢复对备份包有特定要求:

    • 确保你用的是Odoo网页端导出的备份包(包含manifest.json和数据库dump文件的压缩包),而非纯pg_dump生成的SQL文件
    • 重新从网页端下载一份备份,检查压缩包是否完整(解压后无损坏),再尝试恢复。
  • 检查Odoo版本匹配度
    如果备份是从不同版本的Odoo导出,网页端恢复时会触发版本校验,而pg_dump直接操作数据库不会做这个检查:

    • 确认备份来源的Odoo版本和当前要恢复的Odoo版本完全一致(包括小版本号),比如都是16.0.20240501。
  • 排查前端或浏览器问题
    偶尔浏览器缓存或前端JS异常会导致恢复失败:

    • 用浏览器的无痕模式尝试恢复,避免缓存干扰
    • 打开浏览器开发者工具(F12),切换到Console标签页,查看是否有JS报错;再看Network标签页,检查恢复请求的状态码(比如是否有500错误但后端日志没记录)。
  • 尝试恢复到全新数据库
    若恢复到已存在的数据库,Odoo网页端的恢复逻辑可能有冲突:

    • 恢复时输入一个全新的数据库名称,不要和现有数据库重名,测试是否能成功。

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

火山引擎 最新活动