你好,
我遇到了一个以前从未遇到过的奇怪问题。我收到一封邮件通知,说我的 Discourse 安装有一个更新。当我点击邮件中的链接时,系统提示我必须先更新 Docker 安装,然后才能进行其他更新。
这种情况我以前见过很多次,所以我使用一键安装程序进行了升级。这次不同的是,在升级过程中我被叫走了。几个小时后我回来时,看到 Docker 已成功安装。
我点击了顶部的“版本”选项,以便更新其他所有内容。但当该页面加载时,它完全是空白的。看起来是这样的:
随后我回到原始邮件,再次点击一键更新器链接,结果还是一样。
我尝试在不同的浏览器中加载 URL https://community.amwcomics.com/admin/upgrade,得到的结果也相同。
请问你知道我哪里做错了吗?除此之外,我的网站加载正常。我只是现在在一键更新器中看不到任何内容。
gerhard
(Gerhard Schlager)
2
你需要在命令行中重新构建应用程序来解决此问题:
cd /var/discourse
git pull
./launcher rebuild app
我时不时看到有人提出这个问题。有没有可能将其内置,以便在需要此类升级时自动重建并执行全新的拉取操作?我只是考虑到一些用户可能无法运行这些命令,而支持团队在响应重建请求时可能反应较慢,甚至可能在网站管理员不方便的时间进行操作。
Stephen
(Stephen)
4
整个应用程序需要停机进行重构,此时没有任何运行中的进程来管理该过程。
如果创建了一个管理进程,那么当 该 进程需要重构时,我们该怎么办?
这是个合理的观点,显然最终会有一个步骤需要手动升级。我想提出反面观点:如果管理流程的主要任务是调用重建应用程序,那么它应该能大幅减少重建次数。这应该能够通过极少的依赖项和极少的滚动变更来实现。
Stephen
(Stephen)
6
如果您不想如此频繁地升级,或许可以减少升级频率。
我认为您并未充分说明为何不应继续为基准镜像提供增强功能。通过命令进行更新的必要性因情况而异,并不特别频繁,而真正迫切需要这样做的情况更是罕见。
我其实没意识到我在为此辩护。我保证,我绝对不是在主张减少更新的发布频率 
我只是提供一些反馈,谈谈我认为哪些功能能提升生活质量(QoL),即使这些功能可能更新频率较低且会带来一些不便。我完全没问题按需运行相关命令。
或许可以折中一下:当需要运行该命令的更新应用时,通过仪表盘的某个位置(或横幅,我不确定具体形式)明确通知管理员。这样也能减少现在偶尔出现的“我更新了,结果 xyz 变空/缺失/无法使用”的帖子。
sam
(Sam Saffron)
8
我刚刚修复了导致该屏幕变白的根本原因。
我们对 docker manager 插件进行了升级,但该升级与旧版本的 Discourse 不兼容。为此,我添加了一些代码以恢复兼容性。不幸的是,一旦该屏幕变白,你唯一的解决办法是:
cd /var/discourse
./launcher rebuild app
谢谢,Sam(还有 @gerhard!)。我之前有过在升级前被提示使用命令行重新构建应用的经历,但这是我第一次遇到这种白屏问题。很高兴知道这有其原因,并且它最终促成了解决方案。
我现在正在使用命令行重新构建各项内容。
编辑补充: 过程已完成,一切正常。版本页面显示了我所有的插件,并且所有项目都已更新。