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

如何将Heroku上的psql数据库备份至本地并恢复到其他服务器?

Heroku PostgreSQL数据库迁移相关问题解答

先明确:Heroku支持将数据库备份到本地电脑

完全支持,你可以通过PostgreSQL原生工具或Heroku CLI两种方式将数据库备份到本地。


1. 直接将Heroku上的psql数据库恢复到其他服务器

这种方式无需本地中转,适合网络条件较好的场景:

  • 前提:本地或目标服务器已安装heroku-cli和PostgreSQL客户端工具(pg_dump、pg_restore)
  • 步骤:
    • 获取Heroku数据库的连接信息:运行 heroku pg:credentials:url DATABASE(DATABASE为你的数据库别名,默认使用该值),复制输出的连接字符串
    • 直接通过管道完成导出+恢复:
      pg_dump -Fc $(heroku pg:credentials:url DATABASE -a) | pg_restore -d <目标服务器数据库连接字符串>
      
    • 注:<目标服务器数据库连接字符串>格式通常为postgresql://用户名:密码@主机地址:端口/数据库名,需提前在目标服务器创建好空数据库

2. 先备份到本地,再迁移至其他服务器

第一步:备份Heroku数据库到本地

有两种常用方式:

  • 方式一:用PostgreSQL原生工具导出
    运行命令导出为SQL文件(通用格式):
    pg_dump $(heroku pg:credentials:url DATABASE -a) -f heroku_db_backup.sql
    
    或导出为自定义格式(压缩率更高,恢复更快):
    pg_dump -Fc $(heroku pg:credentials:url DATABASE -a) -f heroku_db_backup.dump
    
  • 方式二:用Heroku CLI创建并下载备份
    1. 创建即时备份:heroku pg:backups:capture
    2. 下载备份文件到本地:heroku pg:backups:download,默认生成.dump格式文件

第二步:将本地备份迁移到其他服务器

  • 如果是.sql格式备份:
    psql -d <目标数据库连接字符串> -f heroku_db_backup.sql
    
  • 如果是.dump格式备份:
    pg_restore -d <目标数据库连接字符串> heroku_db_backup.dump
    
  • 注:迁移前需确保目标服务器已创建对应空数据库,且安装了PostgreSQL客户端工具

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:57:50