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

感谢您提供的详细步骤,我最近也遇到了类似的情况,需要迁移到新的主机。
由于网站还能正常运行,我不想通过备份来操作,所以按照这里的步骤进行。

操作几乎成功了,但在新主机上重建时失败了。
结果发现两个主机上的 UID/GID 映射不完全相同,导致启动 Postgres 时由于数据文件夹所有权不正确而中断。

这种情况也可能发生在其他实例中,但幸运的是有一个修复方法可用

此帖子中的场景还有一个额外的细节,那就是容器尚未构建,因此在此阶段 ./launcher enter app 不起作用。由于重建过程会持续相当长的时间,我能够使用 docker ps 获取正在进行构建的容器名称,然后进入容器:

docker exec -it <container_name> bash
chown -R postgres:postgres /shared/postgres_*

重建然后失败(或者你无法通过 CTRL+C 停止它)。停止后,只需再次运行它,权限就会修复:

./launcher rebuild app

它又开始运行了 :sweat_smile:

1 个赞