2015-11-25 115 views
0

我在Heroku上有一個Django應用程序。我正在將它遷移到Azure,並利用他們最近爲我提供的$ 120K /年信用額度。這是我迄今爲止所做的事情:從Heroku遷移到Azure - 獲取數據庫遷移權

i)我使用Ubuntu創建了一個Azure虛擬機(Standard_D1)。

二)我安裝了PostgreSQL的(我選擇的DB)

III),我從我的github上把我的Heroku應用程序的文件到Azure的VM。

iv)我在Azure虛擬機上創建了一個postgres數據庫,然後運行syncdb來創建所需的表。

v)我調整了postgresql.confpg_hba.conf以迎合一些調整要求等。

vi)我從Heroku應用程序的儀表板中取得了備份,並將其下載。這個備份文件的名稱是一個隨機的uuid,沒有文件格式(例如f0af6457-1a24-47d0-881c-434f9bef7c92)。

vii)我現在正在準備使用pg_restore來將備份安裝到Azure VM上新創建的+同步應用程序中。

到目前爲止,這一切聽起來是否正確?我有3個問題:


1)威爾pg_restore與我下車Heroku的備份工作?該備份根本沒有文件格式;而我的印象是它必須是.tar檔案才能與pg_restore兼容。

2)我的數據庫被稱爲mydbname。數據備份保存在/datadrive/backup/filename。因此,在我的情況是正確的pg_restore命令是這樣的:pg_restore -d mydbname /datadrive/backup/filename

3)一旦我在Azure應用程序中成功加載了正確的數據,在我看來,最後一步是將流向Heroku應用程序的流量路由到Azure應用程序。爲此,我將調整DNS條目。在我看來,我在這裏錯過了什麼?

+0

哈桑的步驟似乎恰到好處,對於pg_restore pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb 確定你使用pg_dump創建了備份 –

+0

Hey Brij,感謝您的支持。我實際上沒有使用'pg_dump'本身 - Heroku的儀表板有一個選項,您可以通過按下按鈕下載備份。我想這只是封裝了'pg_dump'命令。因此,就「pg_restore」而言,擁有不帶文件格式或擴展名的備份文件並不是一個問題? –

回答

0

從本質上來說,擴展應該沒有問題,你的恢復應該可以工作,但坦率地說,還沒有用heroku備份測試自己。 不過我的建議是讓使它成爲一個有效的使用.dump文件

捲曲-o latest.dump heroku pg:backups public-url --app <yourappname>

這應該是您的有效使用.dump文件,但是從它的並沒有任何區別備份你已經有..