[英]Download PG database as a file from Heroku
我正在嘗試下載我們的暫存數據庫的文件(副本)。 我正在使用pgbackups
跟隨這些文檔 。
我創建了一個備份,而不是使用heroku pgbackups:url b462 --app staging-appname
public-url
heroku pgbackups:url b462 --app staging-appname
,哪個有效。
比我運行命令curl -o latest.dump
heroku pg:backups <public-url> b462 -a staging-appname
和get curl:沒有指定URL!
在哪里說<public-url>
我復制了實際的長公共網址,如https://s3.amazonaws.com/reallly-long-url-with-acess-key-ect
。
我在這里錯過了什么?
以下將創建備份:
heroku pg:backups capture --app name-of-the-app
使用終端中打印的以下信息
---backup---> b001
在以下命令中
heroku pg:backups public-url b001 -a name-of-the-app
會給你轉儲的網址
在運行heroku pgbackups:capture --app=staging-appname
后立即嘗試以下操作立即獲取最新文件heroku pgbackups:capture --app=staging-appname
:
curl -o latest.dump `heroku pgbackups:url --app=staging-appname`
僅當您要查找特定的舊文件時才需要b..
我也在努力學習這個文檔 ,並且Prakash的建議對我不起作用(錯誤抱怨無法解析不屬於URL的'heroku',所以語法似乎很糟糕,至少對於我正在使用的pg或pgbackup gem的版本。)
我也試過wget,正如heroku doc中的建議,無濟於事。
當我感到難過時,我試着把它想到最簡單的元素,這使我得到了比文檔提供的更簡單的解決方案......
我在Rafael的回答中使用了命令生成一個臨時URL來檢索轉儲文件:
heroku pg:backups public-url b001 -a name-of-the-app
然后, 我只是將該URL粘貼到Chrome的地址欄中,並使用我的網絡瀏覽器下載文件 ,而不是將生成的URL插入curl命令。
下載成功,db文件有效。
有了更多的糖,這里有一個shell腳本的例子,可以從heroku下載mysql dump並將其恢復為本地數據庫
backup_name=$1
if [ -z "$backup_name" ]
then
echo "You must supplied heroku backup name (ex: b001)"
return
fi
echo "Loading '$backup_name' database from heroku"
heroku pg:backups public-url $backup_name -a your-app-name > last_url.txt
curl -o latest.dump `cat last_url.txt`
dropdb local-db-name
createdb local-db-name
pg_restore -c -d local-db-name latest.dump
您需要提供heroku備份名稱作為輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.