从 2.6.0.beta1 升级到最新版本

您好,

我们目前运行的是 2.6.0.beta1 版本,现在想升级到最新稳定版本。由于 2.6.0 是一个旧版本,有什么需要注意的吗?当然,我们会先进行备份,但也许有一些提示 :slight_smile:

您的虚拟机操作系统可能不受支持。我建议您将 Discourse 站点迁移到另一台带有 rsync 的 VPS,跳过数据库文件,构建新容器,然后从现有站点恢复备份。

实际上,我可能更推荐您运行一个全新的 discourse-setup,而不是使用现有的 app.yml 并复制 SMTP 设置等。那儿也发生了一些变化。

假设您对虚拟机执行操作系统升级以使其保持最新,自那时以来,至少还有两次 PostgreSQL 升级。尝试就地升级不会有好结果。如果您尝试了,并且失败了,我不会说“我告诉过你了”,但我也不会说别的。

非常感谢您的答复。由于我们还需要迁移到一个新服务器,因此最初的计划是将旧的 discourse 迁移到新服务器,然后再进行更新。

您是否仍然建议安装新的 discourse?

迁移到新服务器要安全得多,因为您不需要在新服务器正常运行之前更改旧服务器!

我的做法是遵循 rsync 指南,排除 postgres_*。然后我会重命名 app.yml 并运行 ./discourse-setup --skip-connection-test(因为 DNS 尚未指向新服务器)。然后恢复备份。您通常可以通过更改本地 DNS 指向新服务器来测试新服务器是否正常运行,但最坏的情况下,您只需更改 DNS,如果出现灾难,就将 DNS 改回来。(如果使用的是 DigitalOcean 或其他具有浮动 IP 的服务,可以将其指向多个虚拟机,那么您只需重新指向它们,而无需处理 DNS。)

在过去几个月里,我已经这样做了大约 10 次。如果您不想自己动手,我很乐意为您效劳。

1 个赞

您好 Jay,

我已通过私信联系您。

1 个赞

好的,这是我一直想知道的。不需要暂存域名吗?因为域名会(两次)更改,所以不会重写任何内容吗?

如果您复制 ssl 和 let’s encrypt 目录,您将获得现有主机名的证书。服务器已准备好为该域提供服务,但 DNS 未指向该域,因此无法提供服务。

我通常只复制现有的 yml 文件,但对于这个非常旧的网站,获取一个新文件倒是个不错的主意,在这种情况下,我认为我了解到有一些奇怪的修改,我认为最好将它们留在过去。

但是,如果您很聪明,可以欺骗您的浏览器访问该网站并查看一切看起来都不错,然后您可以切换 DNS,以便其他人也能看到。 (并希望记得取消欺骗您的浏览器,以免将来某个时候感到困惑。)

1 个赞