2015-11-25 117 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文件,但是从它的并没有任何区别备份你已经有..