Automation 如何从每日备份中自动恢复Heroku Postgres暂存数据库?

Automation 如何从每日备份中自动恢复Heroku Postgres暂存数据库?,automation,restore,heroku-postgres,staging,backups,Automation,Restore,Heroku Postgres,Staging,Backups,我已安排Heroku生产数据库每天进行备份,我还希望每天将备份恢复到我的临时数据库中。通过这种方式,我可以使暂存箱与生产保持同步,以便进行测试/调试,并自动运行恢复过程的日常测试 我试图安排一个bash脚本在暂存箱上运行以执行恢复。我的脚本使用Heroku CLI提取最新备份的url并执行恢复。我遇到的问题是如何验证Heroku CLI。因为我无法在dyno上打开浏览器,所以我需要找到一种安全的方式进行身份验证 我应该从某处提取.netrc文件吗?给dyno一个CLI是个好主意吗?是否有更好的方

我已安排Heroku生产数据库每天进行备份,我还希望每天将备份恢复到我的临时数据库中。通过这种方式,我可以使暂存箱与生产保持同步,以便进行测试/调试,并自动运行恢复过程的日常测试

我试图安排一个bash脚本在暂存箱上运行以执行恢复。我的脚本使用Heroku CLI提取最新备份的url并执行恢复。我遇到的问题是如何验证Heroku CLI。因为我无法在dyno上打开浏览器,所以我需要找到一种安全的方式进行身份验证


我应该从某处提取.netrc文件吗?给dyno一个CLI是个好主意吗?是否有更好的方法来执行此操作,而无需启动另一台服务器来运行恢复?

您可以在登台环境的
HEROKU\u API\u KEY
env变量中放置授权令牌。使用heroku auth:token生成令牌

然后使用heroku config:set heroku\u API\u KEY=token-a staging设置登台时的令牌

从安全角度来看,这意味着您的登台环境几乎可以完全访问您的生产环境

一种更安全的方法是在生产应用程序上运行一个计划任务,或者为此目的在一个新应用程序上运行一个新应用程序,将db备份复制到登台应用程序可以访问的S3存储桶。暂存应用程序从s3存储桶中的备份进行恢复。暂存不需要访问生产

无论如何,这是一个好主意——如果你失去了对Heroku的访问权,你仍然可以访问你的备份

这有一个构建包-。我鼓励您阅读构建包中的代码——这是一个非常简单的过程。我也可以使用构建包,或者只编写您自己的代码,因为它可以完全访问您的生产环境。我决不会相信第三方buildpack会这样做

如果您的工作从生产数据库中筛选敏感信息以进行转移,则会获得额外的积分。它可以通过以下方式做到这一点:

  • 将生产备份恢复到第二个数据库
  • 从第二个数据库中清除敏感信息
  • 备份第二个数据库
  • 将第二个数据库备份推送到S3存储桶