xwj
2026 年3 月 17 日 13:02
1
从v3.5.2版本升级到v3.5.3之后,管理员页面出现异常
且报如下错误
loader.js:247 Uncaught (in promise) Error: Could not find module discourse/admin/models/admin-plugin imported from discourse/plugins/docker_manager/discourse/models/repo
at loader.js:247:1
at a (loader.js:258:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at requireModule (loader.js:24:1)
at n.i [as getRoute] (index.ts:121:18)
at p._getQPMeta (index.ts:101:20)
(anonymous) @ loader.js:247
a @ loader.js:258
(anonymous) @ loader.js:168
a @ loader.js:262
(anonymous) @ loader.js:168
a @ loader.js:262
requireModule @ loader.js:24
i @ index.ts:121
_getQPMeta @ index.ts:101
禁用插件之后正常了,但无法定位是哪个插件出现了问题,可以帮忙看下吗
xwj
2026 年3 月 17 日 13:15
2
安全模式下“禁用非官方客户端插件自定义”时问题仍然存在,但“禁用所有客户端插件自定义”时就正常了
Heliosurge
(Dan DeMontmorency)
2026 年3 月 17 日 14:28
4
正如内特所说,那是一个非常旧的版本了。 也许可以尝试使用命令行更新。
1 个赞
xwj
2026 年3 月 18 日 01:54
5
请问建议升级到哪个版本呢?跨太多版本升级会不会有更多兼容性问题?
Ed_S
(Ed S)
2026 年3 月 18 日 08:13
8
如果网络升级失败,您需要以 root 用户身份登录 ssh 并执行命令行升级。
你能尝试一下如上回复中建议的命令行重建吗?这可能会解决问题,我从未见过版本跳跃导致的问题……
1 个赞
xwj
2026 年3 月 19 日 01:40
11
请问具体是哪个命令呢?我的服务是打包成docker镜像,然后部署在远程服务器的k8s集群中的。使用的是web_only方式部署。
另外管理员页面出现错误时,有如下报错:
xwj:
您能告诉我具体的命令吗?
转到您安装 Discourse 的位置并输入 ./launcher rebuild app —— 无论 discourse_docker 在哪里。我相信 /var/discourse 是放置该脚本的“推荐”位置,但对您来说可能有所不同。
pfaffman
(Jay Pfaffman)
2026 年3 月 19 日 02:07
13
那是不受支持的。你需要做些什么来加载最新的镜像。你需要迁移数据库。通常升级多个版本没有问题。
3 个赞
xwj
2026 年3 月 19 日 09:45
14
看起来是迁移数据库失败了。报了下面这个错。
TOP => db:migrate => assets:precompile:asset_processor │
│ full trace by running task with --trace) │
│ executing /etc/runit/1.d/00-ensure-links │
│ executing /etc/runit/1.d/01-cleanup-web-pids │
│ executing /etc/runit/1.d/anacron │
│ executing /etc/runit/1.d/cleanup-pids │
│ stale PID files │
│ executing /etc/runit/1.d/copy-env │
│ runsvdir, PID is 1126 │
│ aborted! │
│ pnpm -C=frontend/asset-processor node build.js (Discourse::Utils::CommandError) │
│ Failed to switch pnpm to v10.28.0. Looks like pnpm CLI is missing at “/home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin” or is incorrect │
│ /home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin/pnpm EACCES
我查看具体的pnpm路径时发现路径是存在的,但是pnpm.cjs文件没有执行权限,导致错误。
drwxrwxrwx root root /
drwxr-xr-x root root home
drwxr-x— discourse discourse discourse
drwxr-x— discourse discourse .local
drwxr-x— discourse discourse share
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse .tools
drwxr-x— discourse discourse pnpm
lrwxrwxrwx discourse discourse 10.28.0 → 10.28.0_tmp_9_0
drwxr-x— discourse discourse 10.28.0_tmp_9_0
drwxr-x— discourse discourse bin
lrwxrwxrwx discourse discourse pnpm → ../node_modules/pnpm/bin/pnpm.cjs
drwxr-x— discourse discourse ..
drwxr-x— discourse discourse node_modules
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse bin
-rw-r----- discourse discourse pnpm.cjs
后来我在镜像中使用corepack预安装了对应版本的pnpm之后,数据库迁移成功了。现在服务已经正常了。
1 个赞