我现在在 Heroku 上有一个包含 40 个表的 postgres 数据库。这是一个 Django 应用程序,总行数约为 500 万行。
我想将所有这些迁移到 Azure VM 中的精确副本(该虚拟机已经正确安装和设置了 postgres)。
进行此迁移的最安全、最干净的方法是什么?
以下是我脑海中的步骤:
1) 准备 Azure VM,方法是:
切换到用户
postgres
并通过输入psql
进入 psql 客户端创建名为
mydatabase
的数据库通过命令CREATE DATABASE mydatabase;
无需运行
syncdb
在此阶段创建表。
2) 登录 Heroku 命令行,运行命令 heroku maintenance:on
3) 接下来,运行命令 heroku run pg_dump -C dbname | bzip2 | ssh myusername@hostname "bunzip2 | psql mydatabase"
(来源:here)
就是这样。没有syncdb可以在任何时候创建表结构或任何东西。
任何人都可以对这些步骤发表评论,并在需要的地方进行纠正吗?谢谢!
注意:在需要时询问更多信息
最佳答案
heroku pg:backups capture
(捕获pg备份)
curl -o latest.dump heroku pg:backups public-url
(将 pg 备份下载到本地计算机)
ls -lh latest.dump
(检查下载文件的大小,以便确定您下载了完整的文件)
scp -P <your port e.g. 2222> latest.dump <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1a6f697f685a7f627b776a767f347976756f7e7b6a6a34747f6e" rel="noreferrer noopener nofollow">[email protected]</a>:/home/user
(这会将文件传输到您的远程计算机)
然后在您的远程计算机上:
pg_restore --verbose --clean --no-acl --no-owner -U myuser -d mydb latest.dump
希望这能完成工作。
关于linux - 将 postgres DB 从 Heroku 移动到 Azure 托管的基于 Linux 的 VM(Django 应用程序)所需的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376867/