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

Heroku Postgres备份恢复失败,求导入修改后SQL文件的方法

解决Heroku Postgres备份恢复的扩展Schema问题

直接导入修改后的SQL文件

你不需要把SQL转回dump文件,用正确的heroku pg:psql命令即可导入:

  1. 确保本地已安装PostgreSQL客户端(包含psql工具)
  2. 执行以下命令导入:
heroku pg:psql --app <你的应用名称> -f <修改后的SQL文件路径>

注意:之前的错误是因为缺少-f参数,该参数用于指定要导入的SQL文件路径。

如果仍有报错,检查并处理SQL文件中的COMMENT ON EXTENSION语句:

  • 若扩展已迁移到heroku_ext schema,需确保注释语句指向正确的扩展(比如COMMENT ON EXTENSION heroku_ext.pg_stat_statements ...)
  • 也可暂时注释掉所有COMMENT ON EXTENSION语句,导入完成后再手动添加。

重新生成dump文件再恢复(可选)

如果偏好使用dump文件恢复,可按以下步骤操作:

  1. 本地创建临时数据库并加载修改后的SQL:
# 创建临时库
createdb temp_heroku_db
# 导入修改后的SQL
psql -d temp_heroku_db -f <修改后的SQL文件路径>
  1. 生成符合Heroku格式的dump文件:
pg_dump -Fc temp_heroku_db -o fixed_backup.dump

-Fc参数指定生成自定义格式的dump,与Heroku原生备份格式一致。

  1. 恢复到Heroku Postgres:
heroku pg:restore --app <你的应用名称> fixed_backup.dump
  1. 清理本地临时数据库:
dropdb temp_heroku_db

额外注意事项

  • 确保所有CREATE EXTENSION语句的schema都改为heroku_ext,包括postgis等其他扩展
  • 若遇到权限或schema不存在的报错,先手动创建heroku_ext schema:
heroku pg:psql --app <你的应用名称> -c "CREATE SCHEMA IF NOT EXISTS heroku_ext;"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:15:45