我正在尝试使用Heroku的新版pgbackups:transfer命令将数据从生产传输到登台数据库。文档很难理解,并且S.O.答案似乎重定向人们使用pgbackups:restore,我知道如何使用。
文档状态
$ heroku pgbackups:transfer HEROKU_POSTGRESQL_PINK sushi-staging::HEROKU_POSTGRESQL_OLIVE -a sushi
当我将其作为:
运行时$ heroku pgbackups:transfer DATABASE_URL HEROKU_POSTGRESQL_IVORY sushi-staging::HEROKU_POSTGRESQL_JADE -a warm-brushlands-XXXX
我得到了这个错误,以及几种不同的可能语法,都与第一个例子不同:
! Invalid argument: "sushi-staging::HEROKU_POSTGRESQL_JADE"
Usage: heroku pgbackups:transfer [SOURCE DATABASE] DESTINATION DATABASE
direct database-to-database transfer
If no DATABASE is specified, defaults to DATABASE_URL.
The pgbackups add-on is required to use direct transfers
Example:
$ heroku pgbackups:transfer green teal --app example
note that both the FROM and TO database must be accessible to the pgbackups service
$ heroku pgbackups:transfer DATABASE postgres://user:password@host/dbname --app example
此主题的变体会产生相同的错误。
我正在寻找一个明确的语法示例 for pgbackups:transfer,如:
$ heroku pgbackups:transfer -from source-app-name-XXXX -to destination-app-name-XXXX -confirm destination-app-name-XXXX
谢谢。
答案 0 :(得分:1)
在Heroku支持团队澄清之后,我的成功语法如下:
<强>语法强>
heroku pgbackups:transfer source-color destination-app-name-XXXX::destination-color -a source-app-name-XXXX
<强>键强>
source-color =您应用中的每个数据库都会获得一种颜色。如果您的数据库颜色是:HEROKU_POSTGRESQL_PINK,您只需将粉红色&#39;在这里,没有引号。
destination-color =目标数据库的简单颜色
source-app-name =源应用程序的名称,例如warm-brushlands-1111
destination-app-name =目标应用的名称
示例强>
来源应用:young-refuge-1111.herokuapp.com 源数据库:HEROKU_POSTGRESQL_PINK
目标应用:warm-springs-1111.herokuapp.com 目的地数据库:HEROKU POSTGRESQL_IVORY
heroku pgbackups:transfer pink warm-springs-1111::ivory -a young-refuge-1111
答案 1 :(得分:0)
我想你想改变这个
heroku pgbackups:transfer DATABASE_URL HEROKU_POSTGRESQL_IVORY sushi-staging::HEROKU_POSTGRESQL_JADE -a warm-brushlands-XXXX
到此
heroku pgbackups:transfer HEROKU_POSTGRESQL_IVORY sushi-staging::HEROKU_POSTGRESQL_JADE -a warm-brushlands-XXXX
即。删除DATABASE_URL。这应该将HEROKU_POSTGRESQL_IVORY(假设在prod上)转移到HEROKU_POSTGRESQL_JADE(在登台时)。