我在Heroku上有一个Django应用程序。我正在将它迁移到Azure,利用他们最近提供的每年120,000美元的信用额度。这是我到目前为止所做的:
i)我使用Ubuntu(Standard_D1)创建了一个Azure VM。
ii)我在上面安装了postgresql(我选择的数据库)
iii)我将我的Heroku应用程序的文件从我的github中提取到Azure VM上。
iv)我在Azure VM上创建了一个postgres数据库,然后运行syncdb
来创建所需的表。
v)我调整了postgresql.conf
和pg_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 :(得分:0)
基本上,扩展应该无关紧要,你的恢复应该可以工作,但坦率地说没有用heroku备份测试自己。 不过我建议让它成为有效的.dump文件
curl -o latest.dump
heroku pg:backups public-url --app <yourappname>
这应该是您有效的.dump文件,尽管它与您已有的备份没有任何不同。