如何升级:当 `/var/discourse` 仅包含 `shared` 且非 Git 仓库时

大家好,

我们部门的 Web 服务器上由前任管理员搭建了一个 Discourse 实例。我对 Discourse 不太了解,但它提示需要更新,并建议执行以下命令:

        cd /var/discourse
        git pull
        ./launcher rebuild app

但是当我 cd 进入 /var/discourse 时,发现里面只有 shared 目录,因此 git pull 失败(该目录不是一个 Git 仓库)。我该怎么办?

1 个赞

您应该在新的虚拟机上执行干净安装,先进行备份,然后将其恢复到新安装中。

如果您不喜欢这个答案,那么您应该让当初设置该环境的人来修复它。

2 个赞

@pfaffman 你说的“新虚拟机”是什么意思?是指 Discourse 的 Docker 镜像吗?问题是,我找不到通过 Docker 管理 Discourse 的手册。

创建新 VM 意味着创建新的虚拟服务器(假设您的实例未运行在专用硬件上)。

3 个赞

你可以参考这个:https://meta.discourse.org/t/discourse-official-standard-installation/142537

1 个赞

这确实很可能就是问题所在。它运行的是 Discourse 2.1.0(如果这样能让情况更清晰的话)。

问题在于:我的实例确实运行在专用硬件上。

所以,我理解目前不涉及 Docker。至少,不是手动操作。至少,很高兴知道只有一种设置方法,而且它只使用 git clone 和设置脚本。

让我困扰的是,既然一切都在一台实际的物理机器上运行(即没有任何“虚拟”成分),我该如何温和地移除旧版本。我已经做了备份,这很简单。接下来该怎么做?

1 个赞

现在在另一台机器上安装。建议使用虚拟机,因为更容易扩展资源。系统要求请参阅安装文档。

新安装运行后,请恢复该备份。

这是什么类型的实例?负载如何?是否持续使用?

2 个赞

天哪……那是 2018 年中期发布的版本。你绝对需要更新。除了缺失许多优秀功能外,还缺少不少安全修复,其中一些至关重要,而你的版本并未包含这些修复。

3 个赞

不幸的是,我没有另一台机器。

感谢反馈,但这并不是问题所在:我正在尝试更新。我在昨天之前并不是该实例的管理员,但我了解更新的重要性。

感谢大家的回答!我问了那位老管理员,他帮了忙。不知何故,Git 仓库位于 /var/docker 而不是 /var/discourse。从那里开始,就可以应用标准流程了。我们现在已经升级到最新版本(2.6),太棒了!:tada:

4 个赞

啊哈!那是很久很久以前(在我四年前开始使用 Discourse 之前)推荐的存放位置。

看来我“请教老手”的解决方案真的奏效了!

5 个赞

我建议还是留一些文档以防万一:

echo "it's in /var/docker" > where-is-launcher
2 个赞

这是个好主意。或者也可以

 cd /var/
 ln -s /var/docker discourse

不过这可能会让 launcher 感到困惑。

1 个赞

这不太是个好主意,因为 /var/discourse 已经存在,并且包含 shared 目录。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.