heroku pgbackups - 它是如何工作的?

Rub*_*012 4 postgresql heroku ruby-on-rails-3

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

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

$ heroku pgbackups:capture -a costrecovery --expire

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

?[0KCapturing... doneB -
?[0KStoring... done
Run Code Online (Sandbox Code Playgroud)

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

HEROKUS说明

$ heroku pgbackups:restore DATABASE -a target-app \
    `heroku pgbackups:url -a source-app`
Run Code Online (Sandbox Code Playgroud)

命令我已经尝试过了

$ 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
Run Code Online (Sandbox Code Playgroud)

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

hgm*_*mnz 5

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

heroku pgbackups:url -a costrecovery
Run Code Online (Sandbox Code Playgroud)

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

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

heroku pgbackups:restore DATABASE_URL --app boiling-reef-2060 `heroku pgbackups:url --app costrecovery
Run Code Online (Sandbox Code Playgroud)