heroku pgbackups - 它是如何工作的?

时间:2013-04-05 19:26:54

标签: ruby-on-rails-3 postgresql heroku

我正在尝试使用pgbackups将数据库从现有应用程序迁移到新应用程序,但我遇到了问题。我已经阅读了heroku的开发站点上的文档,但我仍然遇到错误。

我已经为两个数据库安装了插件,我可以成功转到我的源数据库并复制/捕获它。

$ heroku pgbackups:capture -a costrecovery --expire

HEROKU_POSTGRESQL_ONYX_URL (DATABASE_URL)  ----backup--->  b007

←[0KCapturing... doneB -
←[0KStoring... done

然后我切换到要将数据库复制到的应用程序目录,并按照heroku列出的说明进行操作。问题是我不知道它是否不起作用,因为它们是一个错误,或者是因为我没有正确解释说明,这是完全可能的。首先,我将列出来自heroku的开发站点的指令,然后列出我尝试过的命令。

HEROKUS说明

$ heroku pgbackups:restore DATABASE -a target-app \
    `heroku pgbackups:url -a source-app`

我已经尝试过的命令

$ heroku pgbackups:restore DATABASE_URL -a boiling-reef-2060 \
> heroku pgbackups:url -a costrecovery
!    Backup not found


$ heroku pgbackups:restore HEROKU_POSTGRESQL_GREEN_URL -a boiling-reef-2060 \
> 'heroku pgbackups:url -a costrecovery'
!    Backup not found


$ heroku pgbackups:restore DATABASE -a boiling-reef-2060 \
> 'heroku pgbackups:url -a costrecovery'
!    Backup not found


$ heroku pgbackups:restore DATABASE_URL -a costrecovery-copy2 \
> heroku pgbackups:"https://s3.amazonaws.com/hkpgbackups/app405411@heroku.com/b
007.dump?AWSAccessKe
> yId=AKIAJFDIRYCGYNFXR4FQ&Expires=1365184330&Signature=po0wZ982Jbx%2Fkv0bKk0iv
P%2
> FRWac%3D"
!    Resource not found

有人可以用正确的语法帮助我吗? 感谢

1 个答案:

答案 0 :(得分:5)

pgbackups可以从同一个应用程序的数据库或任何pgbackups URL恢复,就像在源应用程序/数据库中捕获的那个一样。这些指令使用反引号(`)来弹出并从源应用程序中获取pgbackups URL。 pgbackups:url命令将提供这样的URL。尝试运行它,以了解发生了什么:

heroku pgbackups:url -a costrecovery

(假设costrecovery是您捕获数据的地方)。

知道这一点,你应该能够简单地运行:

heroku pgbackups:restore DATABASE_URL --app boiling-reef-2060 `heroku pgbackups:url --app costrecovery