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

pg_restore恢复PostgreSQL时aws_s3扩展因依赖顺序错误创建失败

PostgreSQL恢复时aws_s3扩展创建失败的解决方法

核心问题

aws_s3扩展依赖plpgsql,但备份文件的恢复顺序中,plpgsql的创建语句在aws_s3之后,导致依赖缺失报错。

具体解决方法

1. 预创建plpgsql扩展(最简单)

在执行pg_restore之前,先连接到目标数据库,手动执行:

CREATE EXTENSION IF NOT EXISTS plpgsql;

plpgsql是PostgreSQL常用的过程语言,提前创建后再恢复,就能避开依赖顺序问题,全程不需要修改备份文件或恢复参数。

2. 用--use-list调整恢复顺序(官方推荐)

如果不想手动预创建,完全可以通过--use-list选项自定义恢复顺序,且不会排除任何内容:

  • 第一步,从备份文件导出默认恢复列表:
pg_restore -l your_backup.dump > restore_order.txt
  • 第二步,编辑restore_order.txt,找到CREATE EXTENSION plpgsql的行,将其剪切粘贴到CREATE EXTENSION aws_s3的行前面,保存文件。
  • 第三步,用调整后的列表执行恢复:
pg_restore -L restore_order.txt -d your_target_db your_backup.dump

3. 直接编辑文本格式备份(仅适用于纯文本dump)

如果你的备份是纯SQL文本格式(不是pg_dump默认的自定义格式),可以直接打开备份文件,把CREATE EXTENSION plpgsql;语句移到CREATE EXTENSION aws_s3;之前。但自定义格式的备份无法直接编辑,所以这个方法通用性较差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:17:37