簡體   English   中英

從Heroku下載PG數據庫作為文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM