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

使用pgAdmin4恢复.sql文件报错:文本格式转储需用psql处理

解决pgAdmin4恢复.sql文件时的pg_restore错误

嘿,这个问题我碰过好多次了,咱们一步步把它捋明白:

首先,报错的核心原因是PostgreSQL的两种备份格式搞的鬼——这俩格式对应的恢复工具完全不一样:

  • 文本格式dump(通常存为.sql):本质就是一堆纯SQL语句的集合,比如CREATE TABLE、INSERT这类命令,只能用psql来执行导入,根本不是pg_restore的处理对象。
  • 归档/自定义格式备份:这种是二进制格式(比如后缀为.dmp、.backup),才是pg_restore专门负责的,它支持更灵活的恢复操作(比如只恢复某张表、跳过某些数据)。

你遇到的情况就是:这个.sql文件实际是文本格式的dump,后缀名只是个标识,不代表文件的真实格式,所以pg_restore识别不了才会提示你换psql,完全正常~

不用转换格式!直接用psql导入就行

方法1:用pgAdmin4的GUI操作

  1. 打开pgAdmin4,连接到你要恢复数据的目标数据库
  2. 在左侧导航栏右键点击目标数据库,选择 Query Tool(查询工具)
  3. 在Query Tool的工具栏里,点击那个像文件夹的 Open File 按钮
  4. 选中你的.sql文件,点击打开
  5. 点击工具栏上的▶️ Execute 按钮,等着SQL语句执行完就搞定了

方法2:用命令行(psql命令)

如果你习惯用终端,直接跑这条命令就行:

psql -U 你的数据库用户名 -d 目标数据库名称 -f /你的文件路径/文件名.sql

执行时输入用户密码,等着命令跑完就完成导入了。

额外小提示

要是以后你想生成适合pg_restore的备份文件,用pg_dump的时候加个-Fc参数指定自定义格式就行:

pg_dump -U 用户名 -d 要备份的数据库名 -Fc -o /备份文件保存路径/备份文件.dmp

这样生成的文件就能用pg_restore正常恢复啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:30:34