将postgres DB从Heroku移动到Azure托管的基于Linux的VM(Django应用程序)所需的步骤
我有一个postgres数据库,现在Heroku上有40个表。这是一个Django应用程序,总行数约为500万 我想将所有这些迁移到一个Azure VM中的精确副本(该VM已经正确安装和设置了postgres) 进行此迁移的最安全、最干净的方法是什么? 以下是我脑海中的步骤: 1) 通过以下方式准备Azure VM:将postgres DB从Heroku移动到Azure托管的基于Linux的VM(Django应用程序)所需的步骤,linux,django,postgresql,azure,heroku,Linux,Django,Postgresql,Azure,Heroku,我有一个postgres数据库,现在Heroku上有40个表。这是一个Django应用程序,总行数约为500万 我想将所有这些迁移到一个Azure VM中的精确副本(该VM已经正确安装和设置了postgres) 进行此迁移的最安全、最干净的方法是什么? 以下是我脑海中的步骤: 1) 通过以下方式准备Azure VM: 切换到用户postgres并通过键入psql 通过命令CREATE database mydatabase创建名为mydatabase的数据库 在此阶段无需运行syncdb来创建
- 切换到用户
并通过键入postgres
psql
- 通过命令
CREATE database mydatabase创建名为
的数据库代码>mydatabase
- 在此阶段无需运行
来创建表syncdb
Heroku维护:on
3) 接下来,运行命令heroku run pg_dump-cdbname | bzip2 | sshmyusername@hostname“bunzip2 | psql mydatabase”
(来源:)
就这样。任何时候都没有syncdb来创建表结构或任何东西
有人能对这些步骤发表评论,并在需要时进行纠正吗?谢谢
注意:如果需要,请询问更多信息
heroku pg:backups capture
(捕获pg备份)
curl-o latest.dump heroku pg:backups公共url
(将pg备份下载到本地计算机)
ls-lh latest.dump
(检查下载文件的大小,确保下载了完整的文件)
scp-p latest.dumpuser@example.cloudapp.net:/home/user
(这将文件传输到远程计算机)
然后在远程计算机上:
pg\U restore--verbose--clean--no acl--no owner-U myuser-d mydb latest.dump
希望这能完成任务。您应该使用例如Docker或Vagrant在PC上“练习”迁移,以准确确定使Azure实例处于就绪状态所需的步骤。。。肯定会有一些意想不到的步骤!可能重复@BrijRajSingh MSFT:是的,我记得我们讨论过这个问题。但是你的答案不是很正确吗?
curl-o latest.dump heroku pg:backups public url--app
只是一种进行数据库备份的方法吗?这是正确的,而OP的大部分步骤都是正确的。我自己就是这个问题的OP,之后我用这种方式尝试了pg_还原:pg_还原——详细——干净——没有acl——没有所有者——h example.cloudapp.net-U postgres-d mydb/home/mhb11/e38862b4-32bd-41b8-9b1c-fcaa9734b1f8?dl=0
,但我遇到了大量错误,无法正常工作。争议裁决委员会仍然未经授权。你认为我在这个问题中概述的步骤如何?看到什么异常了吗?