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

标签 linux django postgresql azure heroku

我现在在 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/

相关文章:

javascript - 修复了 PrettyPhoto 中的窗口大小

django - 将 'yesterday' 字段添加到 Django 管理日期列表过滤器

sql - Postgresql 基于日期聚合值

android - 在 bash 脚本中运行 apktool

c++ - 信号发送器转换

python - 无法在 django session 中保存对象列表

postgresql - 在同一台机器上创建多个 Postgres 实例

sql - 如何计算数据库列中所有不同值的出现次数?

linux - BPF过滤器失败

c++ - 如何使用 SIGSEGV 的信号处理程序调试程序