You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Odoo 14数据库导入PostgreSQL?导出全量带数据表方法咨询

Odoo Enterprise 14 导出全量含数据表操作指南

前置说明

导出dump时的报错通常是默认备份逻辑过滤了空表、或pg_dump参数配置错误导致的导出异常,可通过以下两种方式完成导出:

方案1:使用PostgreSQL原生命令导出(稳定性最高)

Odoo底层数据全部存储在PostgreSQL数据库中,直接调用pg_dump指定过滤条件即可导出所有含数据的表:

  • 首先登录到PostgreSQL所在的服务器,切换到postgres用户:
    su - postgres
  • 先查询当前Odoo数据库下所有含数据的表,生成表列表:
SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'public' 
AND table_type = 'BASE TABLE'
AND (SELECT n_live_tup FROM pg_stat_user_tables WHERE relname = table_name) > 0;
  • 将上一步查询得到的表名代入pg_dump命令,执行导出:
    pg_dump -d 你的Odoo数据库名 -t 表名1 -t 表名2 -f 导出的dump文件路径.sql
    如果需要批量导出所有符合条件的表,可直接拼接参数执行:
    pg_dump -d 你的Odoo数据库名 $(psql -d 你的Odoo数据库名 -t -c "SELECT string_agg('-t '||quote_ident(table_name), ' ') FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE' AND (SELECT n_live_tup FROM pg_stat_user_tables WHERE relname = table_name) > 0") -f 导出的dump文件路径.sql

方案2:通过Odoo内置数据库管理工具导出

  • 访问Odoo实例的/web/database/manager页面
  • 选择对应数据库,点击「Backup」按钮
  • 备份格式选择「Include data (zip)」,该选项会自动过滤无数据的系统空表,导出所有包含业务数据的表结构+数据

常见异常排查

  • 如果导出时报权限错误,需确认执行pg_dump的用户对Odoo数据库有只读以上权限
  • 如果导出的dump体积异常偏小,可执行SELECT count(*) FROM 表名确认对应表确实存在数据后再重新导出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:51:03