59 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: appstore.uninstall.howto
title: 卸载一个插件
type: howto
feature: appstore
scope: admin
locale: zh
aliases:
- 卸载插件
- 删除应用
- 关闭功能插件
- 怎么停掉 AI
- 删掉审批
- uninstall plugin
related_tools: []
related_pages: [application]
prerequisites:
- 需要系统管理员权限
negative:
- 卸载会停容器并标记 status但不一定立刻删数据卷
- 不支持卸载 `appstore` 本身(强制保留)
- 卸载后用户在「应用」页对应入口立即消失,正在使用的会话可能报错
last_verified: v1.7.90
---
# 卸载一个插件
## 入口
桌面端:左侧栏「应用」→「应用商店」(仅管理员)→ 找到目标插件 →「卸载」按钮。
## 操作步骤
1. 进入应用商店,定位到已安装的插件
2. 点击「卸载」按钮
3. 确认弹窗:通常会提示「卸载后相关数据如何处理」
4. 等待 AppStore 微服务停容器、改 `config.yml` 状态为非 `installed`
5. 刷新「应用」页,对应菜单消失
## 卸载做了什么
-`docker/appstore/config/{appId}/config.yml` 更新 `status` 字段(非 `installed`
-`docker compose down` 停掉对应容器
- 触发主程序缓存失效:`RequestContext::save('app_installed_xxx', false)`
- 之后所有对该插件的后端调用会被 `Apps::isInstalledThrow()` 拦截,抛 ApiException
## 卸载会影响的数据
取决于插件实现:
- 多数官方插件停容器但保留 `docker/appstore/apps/{appId}/data/` 数据目录
- 重新安装通常能恢复数据
- 若要彻底删数据,需要手动到服务器删 `data/` 目录(不可逆,做之前先备份)
## 卸载前建议
1. 先把该插件相关业务数据导出(如审批数据 [[data-export.approve.howto]]、签到 [[data-export.checkin.howto]]
2. 通知使用该插件的成员
3. 重要数据先做服务器侧备份
## 不支持
- 不支持仅对部分用户隐藏(卸载即全员失效)
- 不支持「停用但保留菜单」中间态
- 不支持卸载 appstore 自身