如何将数据从我的生产数据库传输到heroku中的临时数据库?

时间:2012-01-10 21:04:09

标签: ruby-on-rails ruby database heroku pg

我正在尝试将数据从我的生产数据库传输到我的登台数据库,但没有成功。

我正在关注heroku的文档:http://devcenter.heroku.com/articles/pgbackups#transfers

这些是我跑的命令......

$ heroku addons:add pgbackups --remote staging
$ heroku addons:add pgbackups --remote production
$ heroku pgbackups:capture --remote production
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote production` --remote staging

这就是我得到的信息......

Usage: heroku pgbackups:restore [<DATABASE> [BACKUP_ID|BACKUP_URL]]

restore a backup to a database

if no DATABASE is specified, defaults to DATABASE_URL and latest backup
if DATABASE is specified, but no BACKUP_ID, defaults to latest backup

似乎我拼错了,但我无法弄明白。

我也尝试过使用应用程序名称而不是遥控器的相同命令......

$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging

但是我收到相同的消息,没有实际转移。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:11)

我认为你没有正确捕获。始终使用--app代替--remote

$ heroku pgbackups:capture --app myapp
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging

答案 1 :(得分:4)

不确定Heroku是否因为这些是去年1月发布而改变了,但是当我运行时

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging

我不断收到错误说

  

“!找不到备份”

即使我单独运行命令以获取URL:

heroku pgbackups:url --app myapp

然后在浏览器中尝试了URL,该URL正确无误。

所以我只是尝试将复制/粘贴的URL发送到命令,例如:

heroku pgbackups:restore DATABASE "http://urlgoeshere" --app myapp-staging

我不得不在网址周围使用DOUBLE引号,而不是单引号。否则我收到了这个错误:

  

文件名,目录名或卷标语法不正确。   'Expires'不被视为内部或外部命令,   可操作程序或批处理文件。 '签名'不被视为   内部或外部命令,可操作程序或批处理文件。