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