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

从Docker容器外部恢复指定PostgreSQL表(使用.sql文件)

Docker容器外部恢复PostgreSQL指定表的正确方法

你当前的恢复命令存在两个关键问题,导致无法正常恢复:

  1. 重定向符号方向错误:使用>会将命令输出写入文件,而恢复操作需要把本地备份文件输入到容器内的命令,应该改用<
  2. 备份格式与恢复工具不匹配:你用pg_dump导出的是纯SQL格式文件,用psql恢复更直接,pg_restore通常用于自定义格式的备份

正确恢复方法(对应你的纯SQL导出方式)

直接用psql读取本地备份文件并恢复:

docker exec -i postgres /bin/bash -c "psql -U <user_name> -d <db_name>" < <file_name>.sql

如果需要精准指定恢复某张表(确保备份仅包含该表内容),也可以用:

docker exec -i postgres /bin/bash -c "psql -U <user_name> -d <db_name> -c '\copy public."<table_name>" from stdin'" < <file_name>.sql

若使用自定义格式备份(更高效的备份方式)

先修改导出命令为自定义格式:

docker exec -i postgres /bin/bash -c "pg_dump -U <user_name> -d <db_name> -t 'public.\"<table_name>\"' -Fc" > <file_name>.dump

再用pg_restore恢复:

docker exec -i postgres /bin/bash -c "pg_restore -U <user_name> -d <db_name> -t 'public.\"<table_name>\"'" < <file_name>.dump

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:05:15