我们有一个主题组件,通过 rake 命令进行安装。该插件及其通过 rake 命令的安装过程运行完全正常。当我们通过管理界面(例如 /admin/customize/themes/40)进行升级时,升级也完全正常。问题出现在我们尝试使用 rake 命令从命令行进行升级时。输出结果完全符合预期,但更改并未生效。这看起来像是一个 bug 吗?
$ rake themes:install -- '--{"discourse-login-modal": {"url": "https://github.com/example/discourse-login-modal.git", "add_to_all_themes": true}}'
discourse-login-modal: 已安装。正在从远程更新。
结果:
已安装:0
已更新:1
错误:0
提供更多问题详情。运行升级的 rake 命令后,我的主题组件没有发生任何可见变化,但之后管理 UI 认为升级已应用(忘记截图了)。
在我对主题组件进行后续更改后,管理 UI 现在显示有可用升级,但在应用时却收到警告,提示本地更改将被覆盖。这些更改正是我原本希望通过 rake install 命令应用的内容,但该命令实际上并未生效。
。
你好 @markvanlan,感谢你在安装主题的 rake 命令上所做的努力!你知道为什么通过 rake install 进行升级无法正常工作吗?
我会在本周晚些时候查看这个问题。我之前并不知道 rake 命令无法运行。
很抱歉忘记跟进此事!
我想到这可能是无法更新的原因。如果我的判断正确,这应该能很快修复。
这里有些非常奇怪。当 ThemesInstallTask 更新远程主题时,远程信息已正确更新(显示最新的 SHA,且如您所指出的,commits_behind 为 0)
但数据库中的 SCSS 并未更新。我原本以为是缓存未失效,但事实并非如此!数据库中的 SCSS 没有更新。
此截图中的值应有所不同
查看管理员主题控制器处理更新的方式与任务更新远程主题的方式,我看不出有何不同。

我会揭开这个谜团。
我已经查明问题根源并创建了 PR。我在描述中解释了该问题。
已合并!更新已修复。