访问 `/admin/upgrade` 时未定义的方法 `sub!`

Hu,没有一个插件有远程 URL:

discourse@ocean-app:/var/www/discourse/plugins$ for d in *; do echo "$d: $(git -C $d config --get remote.origin.url)"; done
chat:
discourse-chat-integration:
discourse-details:
discourse-lazy-videos:
discourse-local-dates:
discourse-narrative-bot:
discourse-presence:
discourse-solved:
docker_manager:
plugins:
poll:
styleguide:

真有趣……实际上,这些目录甚至没有一个 .git 文件夹。