将Postgres数据库从Heroku移动到托管在Azure上的基于Linux的VM(Django应用)所需的步骤。

18 浏览
0 Comments

将Postgres数据库从Heroku移动到托管在Azure上的基于Linux的VM(Django应用)所需的步骤。

我现在有一个包含40个表的Postgres数据库,驻留在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来创建表结构或任何其他内容。

有人可以评论这些步骤,并在需要时进行矫正吗?谢谢!

注:如果需要更多信息,请提出要求。

admin 更改状态以发布 2023年5月22日
0
0 Comments

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

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

ls -lh latest.dump (检查下载文件的大小,确保您已经下载了完整的文件)

scp -P <您的端口,例如2222> latest.dump user@example.cloudapp.net:/home/user (这将把文件传输到您的远程机器上)

然后在您的远程机器上执行以下操作:

pg_restore --verbose --clean --no-acl --no-owner -U myuser -d mydb latest.dump

希望这可以完成工作。

0