Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将postgres DB从Heroku移动到Azure托管的基于Linux的VM(Django应用程序)所需的步骤_Linux_Django_Postgresql_Azure_Heroku - Fatal编程技术网

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

将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数据库,现在Heroku上有40个表。这是一个Django应用程序,总行数约为500万

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

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

以下是我脑海中的步骤:

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

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

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

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

2) 登录Heroku命令行,并运行命令
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
,但我遇到了大量错误,无法正常工作。争议裁决委员会仍然未经授权。你认为我在这个问题中概述的步骤如何?看到什么异常了吗?