新增: SFTP直连+网站预览+OSS区域嗅探+热键+BGM播放
This commit is contained in:
73
docs/04-功能迭代/GO-DESK-9.插件系统/设计文档/数据模型.md
Normal file
73
docs/04-功能迭代/GO-DESK-9.插件系统/设计文档/数据模型.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# 数据模型
|
||||
|
||||
## 一、plugin_state 表(新增)
|
||||
|
||||
```sql
|
||||
CREATE TABLE plugin_state (
|
||||
plugin_id TEXT PRIMARY KEY,
|
||||
source TEXT NOT NULL DEFAULT 'builtin',
|
||||
enabled INTEGER DEFAULT 1,
|
||||
config TEXT,
|
||||
install_path TEXT,
|
||||
version TEXT,
|
||||
installed_at DATETIME,
|
||||
updated_at DATETIME,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE INDEX idx_plugin_source ON plugin_state(source);
|
||||
CREATE INDEX idx_plugin_enabled ON plugin_state(enabled);
|
||||
```
|
||||
|
||||
### 字段说明
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `plugin_id` | TEXT PK | 对应 PluginMetadata.ID,如 `"builtin-drawio"` |
|
||||
| `source` | TEXT | `'builtin'` 或 `'market'` |
|
||||
| `enabled` | INTEGER | 1=启用 0=停用 |
|
||||
| `config` | TEXT | JSON 格式的插件私有配置 |
|
||||
| `install_path` | TEXT | 外部插件磁盘路径(内置为 NULL) |
|
||||
| `version` | TEXT | 当前安装的版本号 |
|
||||
| `installed_at` | DATETIME | 安装时间 |
|
||||
| `updated_at` | DATETIME | 最后状态变更时间 |
|
||||
|
||||
## 二、与现有表的关系
|
||||
|
||||
```
|
||||
app_config 表(已有) plugin_state 表(新增)
|
||||
┌──────────────┐ ┌──────────────┐
|
||||
│ key='tab_config'│ │ plugin_id PK │
|
||||
│ value=JSON │ ← 合并Tab →│ source │
|
||||
│ (全局配置) │ │ enabled │
|
||||
├──────────────┤ │ version │
|
||||
│ key='plugin_ │ ← 全局设置→│ config │
|
||||
│ global' │ │ install_path │
|
||||
│ (Phase 3 新增)│ └──────────────┘
|
||||
└──────────────┘
|
||||
```
|
||||
|
||||
- `app_config`:存全局应用配置(tab_config、plugin_global 等)
|
||||
- `plugin_state`:存每个插件的运行状态和独立配置
|
||||
- 两者通过 `plugin_id` 关联
|
||||
|
||||
## 三、初始种子数据
|
||||
|
||||
应用首次启动时由 Go 代码写入:
|
||||
|
||||
```sql
|
||||
INSERT OR IGNORE INTO plugin_state (plugin_id, source, enabled, version) VALUES
|
||||
('builtin-file-system', 'builtin', 1, '0.4.0'),
|
||||
('builtin-markdown', 'builtin', 1, '0.4.0'),
|
||||
('builtin-drawio', 'builtin', 0, '1.0.0');
|
||||
```
|
||||
|
||||
## 四、配置存储策略
|
||||
|
||||
| 存储位置 | 内容 | 写入时机 |
|
||||
|---------|------|---------|
|
||||
| `app_config['tab_config']` | Tab 可见性/排序/默认值 | Phase 3 动态合并 |
|
||||
| `app_config['plugin_global']` | 插件全局设置(自动更新间隔等) | Phase 3 |
|
||||
| `plugin_state.enabled` | 每个插件的启停状态 | Phase 3 SetPluginEnabled |
|
||||
| `plugin_state.version` | 当前安装版本 | 安装/更新时 |
|
||||
| `plugin_state.config` | 插件私有配置(如 Draw.io 端口号) | 用户修改插件设置时 |
|
||||
Reference in New Issue
Block a user