如何将 Discourse 从一台服务器迁移到另一台服务器,使用相同的 DNS 名称

谢谢。看来“直接迁移”并没有我想象的那么顺利,迁移前后需要做一些检查,以确保迁移过程顺畅(Postgres 从 12.0 升级到 13.0 让我在迁移过程中学到了不少经验教训)。以下是为将来尝试迁移到 Amazon LightSail 服务器(1GB RAM)的用户准备的逐步指南:

原服务器

  • 创建备份到 S3
  • cd /var/discourse
  • ./launcher rebuild # 获取最新构建版本,以便顺利过渡
  • ./launcher cleanup # 清理旧数据,减小包体积
  • ./launcher stop app # 如果不执行此操作,后续尝试重建时(涉及 Postgres)会失败
  • tar -zcvf /var/discourse discourse.tar.gz

新的 Amazon LightSail 服务器

  • 从 Amazon 安装 Ubuntu 20.20 镜像(1GB RAM)
  • 安装 Docker
  • 创建 2GB 交换空间 # 如果不执行此操作,重建可能会失败
  • 配置 vm.overcommit_memory=1 # 如果不执行此操作,Postgres 在重建过程中可能会失败
  • 通过 FTPS/传输将 discourse.tar.gz 从原服务器传输过来
  • tar -zxvf discourse.tar.gz -C /
  • cd /var/discourse
  • app.yml 中将 UNICORN_WORKERS 设置为 2 # 在 1GB RAM 的情况下,将其设置为超过 2 可能会导致交换和因磁盘活动过多而受到限制
  • ./launcher rebuild
  • 更改 DNS 指向新的 Amazon 服务器

有没有更简单的方法迁移服务器(直接迁移),而无需经历完整的 Discourse 设置流程?