从Heroku迁移到Azure - 正确地进行数据库迁移

时间:2015-11-25 09:19:24

标签: django postgresql azure heroku database-migration

我在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.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条目。在您看来,我在这里遗漏了其他什么吗?

1 个答案:

答案 0 :(得分:0)

基本上,扩展应该无关紧要,你的恢复应该可以工作,但坦率地说没有用heroku备份测试自己。 不过我建议让它成为有效的.dump文件

  

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

这应该是您有效的.dump文件,尽管它与您已有的备份没有任何不同。