将postgres DB从Heroku移动到Azure托管的基于Linux的VM(Django应用程序)所需的步骤

Steps needed to move postgres DB from Heroku to an Azure hosted Linux-based VM (Django app)

我有一个postgres数据库,现在有40个表位于Heroku上。它是一个Django应用程序,总行数约为500万。

我想将所有这些迁移到Azure VM中的精确副本(已经正确安装并设置了postgres)。

进行此迁移的最安全,最干净的方法是什么?

以下是我脑海中的步骤:

1)通过以下方式准备Azure VM:

  • 切换到用户postgres并通过键入psql转到psql客户端

  • 通过命令CREATE DATABASE mydatabase;创建名为mydatabase的数据库

  • 在此阶段无需运行syncdb来创建表。

2)登录Heroku命令行,然后运行命令heroku maintenance:on

3)接下来,运行命令heroku run pg_dump -C dbname | bzip2 | ssh myusername@hostname"bunzip2 | psql mydatabase"(来源:这里)

而已。没有syncdb可以在任何时候创建表结构或任何东西。

任何人都可以评论这些步骤,并在需要的地方纠正吗?谢谢!

注意:如果需要,请询问更多信息


heroku pg:backups capture(捕获pg备份)

curl -o latest.dump heroku pg:backups public-url(将pg备份下载到本地计算机)

ls -lh latest.dump(检查下载文件的大小,因此您确定已下载完整文件)

scp -P latest.dump [email protected]:/home/user(这会将文件传输到您的远程计算机)

然后在你的远程机器上:
pg_restore --verbose --clean --no-acl --no-owner -U myuser -d mydb latest.dump

希望这能完成工作。