pg:pull
pg:pull命令可以用来把数据从Heroku的数据库拉到本地,命令的形式为:
$ heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi
这条命令会创建一个名为mylocaldb的本地数据库然后把名为sushi的应用上的DATABASE_URL
为你指定的URL的数据拉取到本地。为了避免意料之外的数据的覆盖或者丢失,名为mylocaldb的本地数据库一定不能存在,如果存在同名的数据库在操作之前你应该删除。
如果你本地的数据库需要用户名和密码,你应该适当地配置一下环境变量:
PGUSER=postgres PGPASSWORD=password heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi
注意:就像所有的pg:*命令一样,你可以在这里使用简写标识符,所以从应用程序“sushi”上的HEROKU_POSTGRESQL_RED
中提取数据,你可以使用heroku pg:pull sushi :: RED mylocaldb
。
pg:push
像pull一样,pg:push会把本地数据库的数据推送到远程的Heroku Postgres数据库中,命令如下所示:
heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi
这个命令将把本地数据库mylocaldb
并将其推送到应用程序“sushi”上的DATABASE_URL
的数据库中。为了防止意外的数据覆盖和丢失,远程数据库必须是空的。 You will be prompted to pg:reset an already a remote database that is not empty.。
pg:push也支持pguser
和pgpassword
用于本地数据库,就像·pg:pull·命令一样。
https://blog.heroku.com/push_and_pull_databases_to_and_from_heroku
https://devcenter.heroku.com/articles/heroku-postgres-import-export