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

Autobus插件将从Heroku移除,求PostgreSQL自动备份替代方案

无Autobus支持下自动备份Heroku PostgreSQL数据库的方案

下面是几种低成本、可落地的自动备份方案,无需依赖第三方付费插件:

方案1:Heroku官方备份工具 + Heroku Scheduler

Heroku自带的pg:backups工具可以直接创建数据库备份,结合Heroku Scheduler(免费 tier 足够日常使用)实现自动调度:

  1. 配置云存储(以AWS S3为例)
    在Heroku应用中配置AWS密钥,用于将备份上传到S3:

    heroku config:set AWS_ACCESS_KEY_ID=你的AWS访问密钥 AWS_SECRET_ACCESS_KEY=你的AWS密钥 --app 你的应用名
    
  2. 添加定时备份任务
    打开Heroku Scheduler控制面板,添加一个定时任务(比如每天凌晨2点执行),命令如下:

    heroku pg:backups:capture --app 你的应用名 && heroku pg:backups:copy latest s3://你的存储桶名/backups/$(date +%Y%m%d%H%M).dump --app 你的应用名
    

    这个命令会自动创建最新备份,并以时间戳命名上传到S3指定路径。

  3. 可选:设置备份保留策略
    可以通过Heroku命令设置自动删除旧备份:

    heroku pg:backups:rotate --app 你的应用名 --keep 7
    

    上述命令会保留最近7天的备份。

方案2:自定义Shell脚本 + 外部定时调度(VPS/GitHub Actions)

如果需要更灵活的备份逻辑(比如多存储源、自定义验证),可以写脚本结合外部定时工具:

  1. 编写备份脚本
    创建backup-heroku-pg.sh文件,内容如下:

    #!/bin/bash
    export HEROKU_API_KEY=你的Heroku API密钥
    APP_NAME="你的应用名"
    BUCKET_NAME="你的S3存储桶名"
    BACKUP_FILE="heroku-pg-backup-$(date +%Y%m%d%H%M).dump"
    
    # 捕获数据库备份
    heroku pg:backups:capture --app $APP_NAME
    
    # 下载备份到本地
    heroku pg:backups:download -o $BACKUP_FILE --app $APP_NAME
    
    # 上传到S3(需提前在执行环境安装aws-cli并配置权限)
    aws s3 cp $BACKUP_FILE s3://$BUCKET_NAME/backups/
    
    # 清理本地备份文件
    rm $BACKUP_FILE
    

    给脚本添加执行权限:chmod +x backup-heroku-pg.sh

  2. 设置定时任务

    • 如果用VPS:编辑crontab(crontab -e),添加每天凌晨执行的任务:
      0 2 * * * /path/to/backup-heroku-pg.sh >> /var/log/heroku-backup.log 2>&1
      
    • 如果用GitHub Actions:创建.github/workflows/heroku-backup.yml,利用GitHub的定时触发器执行脚本(需在仓库 Secrets 中配置Heroku API密钥和AWS密钥)。

方案3:直接使用pg_dump备份

适合需要直接控制备份格式、跳过特定表的场景:

  1. 准备执行环境
    确保执行环境安装了postgresql-client(即pg_dump工具),并将执行环境的IP添加到Heroku数据库的信任IP列表(在Heroku Dashboard的数据库设置中配置)。

  2. 编写定时备份命令
    直接通过pg_dump连接Heroku数据库并生成备份:

    pg_dump $(heroku config:get DATABASE_URL --app 你的应用名) -Fc -f backup-$(date +%Y%m%d%H%M).dump
    

    其中-Fc参数表示生成PostgreSQL自定义格式备份,便于后续恢复。同样可以将这个命令加入crontab,结合云存储上传脚本完成自动备份。

关键注意事项

  • 备份验证:定期执行恢复测试,确保备份文件可用,比如用pg_restore -d 测试数据库名 备份文件名.dump验证。
  • 密钥安全:所有云服务密钥、Heroku API密钥都要通过环境变量或Secrets管理,不要硬编码在脚本中。
  • 存储冗余:建议将备份存放在与Heroku不同区域的云存储中,避免因区域故障丢失数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:30:45