feat: 5种专业登录页风格 + 外观设置 + 文档全面更新
- 新增 5 种登录页组件: SplitView/CenteredCard/SidePanel/FullImage/MinimalDark - 提取 useLogin hook 共享登录逻辑 - LoginPage 改为风格分发器, localStorage(login-style) 控制渲染 - SettingsPage 新增外观设置 tab: 主题切换 + 登录风格选择器(含缩略图预览) - AppearanceSettings 组件: 5 种风格卡片式切换 - 文档全面更新为 Go/Gin 架构: - ARCHITECTURE.md: Go 项目结构/handler/GORM 模型/中间件/LDAP/驱动矩阵 - FEATURES.md: v0.3.1 功能清单含登录主题系统 - ROADMAP.md: Python→Go 迁移历史 + Sprint 计划
This commit is contained in:
1 parent
f2e93a09c0
commit
14e394fb09
12 files changed
+1147
-639
No files matched your search
+159
-149
@@ -1,6 +1,6 @@
|
||||
# SQL-Platform-Pro 功能清单
|
||||
# SQL-Platform 功能清单
|
||||
|
||||
> 生成时间: 2026-05-25 | 版本: v1.1
|
||||
> 更新时间: 2026-05-26 | 版本: v0.3.1 (Go/Gin 后端)
|
||||
|
||||
## ✅ 已完成功能
|
||||
|
||||
@@ -14,218 +14,228 @@
|
||||
- [x] 查询结果表格 (点击单元格弹详情 + JSON 格式化)
|
||||
- [x] 查询历史记录 (500 条/用户上限)
|
||||
- [x] 收藏查询 / 快捷查询
|
||||
- [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合) — **已加宽 (grid-cols-5 2:3 布局)**
|
||||
- [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE) — **onInsert prop**
|
||||
- [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合)
|
||||
- [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE)
|
||||
- [x] 两阶段 schema 加载 (选实例加载表名, 选库加载列名)
|
||||
- [x] 数据库品牌图标 (techicons.dev SVG)
|
||||
- [x] 实例按权限组过滤 (/instances/accessible?access_type=readonly)
|
||||
- [x] 实例按权限组过滤 (/instances/accessible)
|
||||
|
||||
#### 2. 数据变更审批流 (TicketsPage + TicketCreatePage)
|
||||
- [x] 工单创建 — 单页面一键提交 (原三步向导已简化)
|
||||
- [x] 工单创建 — 单页面一键提交
|
||||
- [x] DB 类型按频率排序 (MySQL → Redis → PostgreSQL → MongoDB)
|
||||
- [x] 选择 DB 类型后自动筛选目标实例
|
||||
- [x] 库表浏览面板 (点击展开库/表/字段,辅助填写目标库)
|
||||
- [x] Redis 目录树按 `:` 分隔构建层级
|
||||
- [x] 工单编号生成 (20位: 时间戳+微秒+序号)
|
||||
- [x] 工单状态机 (pending → reviewing → approved → **scheduled** → executing → success/failed)
|
||||
- [x] 工单状态机 (pending → reviewing → approved → scheduled → executing → success/failed)
|
||||
- [x] 10 种工单状态完整支持
|
||||
- [x] 多步审批流 (standard / parallel / any_one / condition)
|
||||
- [x] 审批人限定 (必须在权限组成员中)
|
||||
- [x] 工单撤销 (pending/reviewing 状态可撤销)
|
||||
- [x] 执行结果结构化展示 (状态/行数/耗时/验证/错误/警告)
|
||||
- [x] 当前审核人显示
|
||||
- [x] CancelTicket 独立处理器
|
||||
- [x] RollbackTicket 独立处理器
|
||||
- [x] GetTicketTimeline 时间线查询
|
||||
- [x] GetTicketApprovals 审批记录查询
|
||||
- [x] 工单快速筛选 (待审批/进行中/已完成/已拒绝)
|
||||
- [x] 实例按 DB 类型筛选
|
||||
- [x] Redis 目录树浏览 + 点击插入命令
|
||||
- [x] MongoDB 集合浏览 + 点击插入命令
|
||||
- [x] Redis/MongoDB 目录树浏览 + 点击插入命令
|
||||
- [x] SQL 提交前强制审核规则检查
|
||||
- [x] 执行结果结构化展示 (状态/行数/耗时/错误/警告)
|
||||
|
||||
#### 3. SQL 审核引擎
|
||||
- [x] 127 条审核规则 (MySQL 67 / PostgreSQL 31 / Redis 25 / MongoDB 31)
|
||||
- [x] 6 个分组 (DDL/DML/DCL/DQL/security/performance)
|
||||
- [x] MySQL 安全规则 SEC-001~009
|
||||
- [x] Redis 规则去重优化 (CMD-001 覆盖 SEC-003)
|
||||
- [x] Redis 规则去重优化
|
||||
- [x] 规则 CRUD (创建/读取/更新/删除/开关)
|
||||
- [x] 规则统计和筛选
|
||||
- [x] 评分系统 (severity: error/warning/info)
|
||||
- [x] POST /tickets/audit — SQL 审核端点
|
||||
|
||||
#### 3.1 SQL 检测按钮 (TicketCreatePage)
|
||||
- [x] 提交按钮旁新增「SQL 检测」按钮
|
||||
- [x] 验证通过前提交按钮置灰 + 提示文字
|
||||
- [x] SQL 内容变化自动重置验证状态
|
||||
- [x] 定时时间显示为醒目红色字体
|
||||
|
||||
#### 3.2 定时执行工单 (ticket_scheduler.py)
|
||||
- [x] 基于 APScheduler + SQLite 持久化的定时调度器 (`apscheduler.db`)
|
||||
- [x] Ticket 模型新增 `scheduled_at` 字段
|
||||
- [x] 新增 `SCHEDULED` 状态 (approved ↔ scheduled → executing → success/failed)
|
||||
- [x] API: `GET /tickets/scheduled/list` 定时工单列表
|
||||
- [x] API: `POST /tickets/{id}/cancel-schedule` 取消定时
|
||||
- [x] API: `GET /tickets/scheduled/stats` 定时统计
|
||||
- [x] 前端: TicketCreatePage 定时执行 datetime picker
|
||||
- [x] 前端: AutoTaskPage 定时任务管理页
|
||||
|
||||
#### 3.3 日志自动清理 (log_cleanup.py)
|
||||
- [x] 系统设置新增 `cleanup` 分组 (6 项配置)
|
||||
- [x] 启用自动清理开关
|
||||
- [x] 清理执行时间 (默认凌晨 3 点)
|
||||
- [x] 工单保留天数 (默认 90 天)
|
||||
- [x] 审计日志保留天数 (默认 180 天)
|
||||
- [x] 查询历史保留天数 (默认 30 天)
|
||||
- [x] 定时任务日志保留天数 (默认 30 天)
|
||||
- [x] 只清理已完成/已拒绝的工单,0 天 = 不清理
|
||||
- [x] API: `POST /settings/cleanup/run` 手动触发清理
|
||||
- [x] API: `GET /settings/cleanup/preview` 预览待清理数据
|
||||
- [x] 前端: PlatformConfigPage 清理分组 + CleanupActions 预览/手动清理按钮
|
||||
- [x] APScheduler cron job 每天 03:00 自动执行
|
||||
|
||||
#### 4. 审批流管理 (WorkflowPage)
|
||||
- [x] 审批流 CRUD (创建/编辑/删除)
|
||||
- [x] 步骤管理 (拖拽排序 + 类型选择)
|
||||
- [x] 3 种高级步骤类型 (parallel 会签 / any_one 或签 / condition 条件分支)
|
||||
- [x] 条件评估引擎 (sql_type/db_type/risk_level/priority)
|
||||
- [x] 超时检查 (timeout_hours + auto_approve_on_timeout)
|
||||
- [x] 默认审批流绑定 (is_default + is_active)
|
||||
#### 4. SQL 助手
|
||||
- [x] POST /sql-assistant/format — SQL 格式化
|
||||
- [x] POST /sql-assistant/analyze — SQL 分析
|
||||
|
||||
### 二、数据源管理
|
||||
|
||||
#### 5. 实例管理 (InstancePage)
|
||||
- [x] 实例 CRUD (4 种 DB 类型)
|
||||
- [x] 连接测试 (MySQL/PG/Redis/MongoDB/SQLite)
|
||||
- [x] 实例密码 AES-256-GCM 加密 (向后兼容明文)
|
||||
- [x] 实例 CRUD (4 种 DB 类型: mysql/postgresql/redis/mongodb)
|
||||
- [x] 连接测试 (MySQL/PG/Redis/MongoDB)
|
||||
- [x] 实例密码 AES-256-GCM 加密 (crypto.go)
|
||||
- [x] 卡片视图 + 列表视图
|
||||
- [x] 按类型 Tab 筛选 (全部/MySQL/PostgreSQL/Redis/MongoDB)
|
||||
- [x] 按类型 Tab 筛选
|
||||
- [x] 品牌图标展示
|
||||
- [x] 编辑弹框 (EditInstanceDialog 可复用)
|
||||
- [x] 克隆实例 (名称自动加 "-副本")
|
||||
- [x] 实例详情页 (6 tab: 概览/表/查询/用户/慢查询/进程)
|
||||
- [x] Redis 详情页 (4 tab: Keys/监控/CLI/性能)
|
||||
- [x] MongoDB 详情页 (数据库/集合/统计/查询CLI)
|
||||
- [x] 实例统计 (InstanceStats)
|
||||
|
||||
#### 6. 库表浏览
|
||||
- [x] MySQL: SHOW DATABASES → information_schema.TABLES → COLUMNS
|
||||
- [x] PostgreSQL: pg_database → pg_tables → column list
|
||||
- [x] Redis: CONFIG GET databases → db0~db{N} (无表概念)
|
||||
- [x] MongoDB: list_database_names → list_collection_names
|
||||
- [x] 统一走后端 listDatabases/listTables API
|
||||
#### 6. MySQL Instance Detail — 7 个端点
|
||||
- [x] databases — 数据库列表
|
||||
- [x] tables — 表列表
|
||||
- [x] db-schema — 库 Schema
|
||||
- [x] table-detail — 表详情 (列/索引)
|
||||
- [x] processlist — 进程列表 (含 Kill)
|
||||
- [x] status — 服务器状态
|
||||
- [x] users — 用户列表
|
||||
|
||||
#### 7. Redis — 9 个真实 Handler
|
||||
- [x] RedisInfo — 服务器信息
|
||||
- [x] RedisDbsize — 数据库大小
|
||||
- [x] RedisScanKeys — Key 扫描
|
||||
- [x] RedisGetKeyDetail — Key 详情 (type/TTL/value)
|
||||
- [x] RedisSlowlog — 慢查询日志
|
||||
- [x] RedisClients — 客户端列表
|
||||
- [x] RedisExecuteCommand — 执行命令
|
||||
- [x] RedisCreateKey — 创建 Key
|
||||
- [x] RedisDeleteKey — 删除 Key
|
||||
|
||||
#### 8. MongoDB Stub 端点
|
||||
- [x] databases — 数据库列表
|
||||
- [x] collections — 集合列表
|
||||
- [x] collection/stats — 集合统计
|
||||
- [x] query — 查询
|
||||
- [x] execute — 执行
|
||||
- [x] test-connection — 连接测试
|
||||
|
||||
### 三、权限与安全
|
||||
|
||||
#### 7. 权限管理 (InstanceGroupPage)
|
||||
#### 9. 权限管理 (InstanceGroupPage)
|
||||
- [x] 权限组 CRUD
|
||||
- [x] 2 种权限类型 (只读查看 / 写入变更)
|
||||
- [x] Transfer 穿梭框选择数据库
|
||||
- [x] 用户-权限组关联
|
||||
- [x] 实例-权限组关联 (中间表 instance_group_members)
|
||||
- [x] 7 个操作权限 action
|
||||
- [x] 实例-权限组关联 (instance_group_members)
|
||||
- [x] 用户-权限组关联 (user_groups)
|
||||
- [x] 角色权限映射 (admin/dba/auditor/developer)
|
||||
- [x] admin 也按权限组过滤 (无 bypass)
|
||||
- [x] RequireRole RBAC 中间件
|
||||
|
||||
#### 8. 用户管理 (UsersPage)
|
||||
#### 10. 用户管理 (UsersPage)
|
||||
- [x] 用户 CRUD (4 角色: admin/dba/auditor/developer)
|
||||
- [x] bcrypt 4.0 密码哈希
|
||||
- [x] 默认用户种子数据 (4 个: admin/zhangsan/laoliu/lurenjia)
|
||||
- [x] bcrypt 密码哈希 (golang.org/x/crypto)
|
||||
- [x] 4 个默认种子用户 (auth_service.go 自动创建):
|
||||
- admin → 超级管理员
|
||||
- zhangsan (张三) → dba
|
||||
- laoliu (老六) → auditor
|
||||
- lurenjia (路人甲) → developer
|
||||
- [x] 批量导入用户 (CSV + LDAP)
|
||||
- [x] 密码重置
|
||||
- [x] guest 角色已彻底禁用
|
||||
|
||||
#### 9. 审计日志 (AuditLogsPage)
|
||||
#### 11. 审计日志 (AuditLogsPage)
|
||||
- [x] 全操作审计日志 (实例/用户/工单/查询 CRUD)
|
||||
- [x] 日志筛选 (时间范围/用户/操作类型)
|
||||
- [x] auditor 角色只读访问
|
||||
|
||||
#### 12. LDAP 认证
|
||||
- [x] LDAP 配置管理 (GET/PUT /ldap-config)
|
||||
- [x] 连接测试 (POST /ldap-config/test)
|
||||
- [x] OU 管理 (列表/创建)
|
||||
- [x] LDAP 用户管理 (列表/创建/删除)
|
||||
- [x] 批量导入 LDAP 用户
|
||||
- [x] 服务器: 8.217.205.92:389, base_dn=dc=opsx,dc=vip
|
||||
- [x] 驱动: github.com/go-ldap/ldap/v3
|
||||
|
||||
### 四、系统设置
|
||||
|
||||
#### 10. 通知管理 (NotificationPage)
|
||||
- [x] 通知渠道配置 (DingTalk/Feishu/Email)
|
||||
- [x] 真实消息发送 (非模拟)
|
||||
- [x] 通知模板 (创建/通过/拒绝/执行完成)
|
||||
- [x] 钉钉/飞书换行适配
|
||||
- [x] 测试发送功能
|
||||
#### 13. 通知管理 (NotificationPage)
|
||||
- [x] 通知渠道 CRUD (feishu/dingtalk/wechat/email webhook)
|
||||
- [x] 测试发送功能 (POST /notifications/:id/test)
|
||||
- [x] NotificationChannel + NotificationTemplate 模型
|
||||
|
||||
#### 11. 系统配置 (PlatformConfigPage)
|
||||
- [x] 18 项配置 (查询控制 7 + 安全 3 + 工单 2 + **清理 6**)
|
||||
- [x] 分组卡片布局 (布尔→开关/整数→数字/字符串→文本)
|
||||
- [x] 批量保存 + 变更指示 + 重置默认值
|
||||
- [x] 查询接口集成 (审批检查/长度检查)
|
||||
- [x] **设置种子数据机制** (`settings_seeds.py` 统一管理所有设置项)
|
||||
- [x] **`_ensure_settings` 启动时自动补缺失配置**
|
||||
- [x] **`SETTING_GROUPS` 分组元信息**
|
||||
#### 14. 系统配置 (PlatformConfigPage)
|
||||
- [x] GET /settings — 读取配置
|
||||
- [x] PUT /settings — 批量更新
|
||||
- [x] GET /settings/cleanup/preview — 清理预览
|
||||
- [x] POST /settings/cleanup/run — 手动清理
|
||||
- [x] 分组卡片布局
|
||||
|
||||
#### 12. 公告管理 (AnnouncementPage)
|
||||
#### 15. 公告管理 (AnnouncementPage)
|
||||
- [x] 公告 CRUD (Markdown 内容)
|
||||
- [x] 发布/撤回状态管理
|
||||
|
||||
#### 13. 审核规则管理 (AuditRulesPage)
|
||||
#### 16. 审核规则管理 (AuditRulesPage)
|
||||
- [x] 规则列表 (6 组 Tab: DDL/DML/DCL/DQL/security/performance)
|
||||
- [x] 规则开关 (toggle)
|
||||
- [x] 规则统计
|
||||
- [x] 按数据库类型筛选
|
||||
- [x] 规则种子 (POST /audit-rules/seed/{db_type})
|
||||
|
||||
### 五、基础设施
|
||||
#### 17. 审批流管理 (WorkflowPage)
|
||||
- [x] 审批流 CRUD (创建/编辑/删除)
|
||||
- [x] 克隆审批流
|
||||
- [x] 设置默认审批流
|
||||
- [x] 步骤管理
|
||||
- [x] 条件评估引擎
|
||||
- [x] 超时检查 (timeout_hours + auto_approve_on_timeout)
|
||||
|
||||
#### 14. 前端优化
|
||||
- [x] React.lazy 代码分割 (18 页面懒加载)
|
||||
### 五、外观与个性化 (v0.3.1 新增 🆕)
|
||||
|
||||
#### 18. 登录页主题系统
|
||||
- [x] 5 种登录页风格:
|
||||
- **SplitView** (经典分屏) — 左侧特性展示 + 右侧表单
|
||||
- **CenteredCard** (居中卡片) — 渐变背景 + 居中表单
|
||||
- **SidePanel** (侧边面板) — 左侧品牌面板 + 右侧表单
|
||||
- **FullImage** (全屏背景) — 科技背景 + 毛玻璃卡片
|
||||
- **MinimalDark** (极简暗色) — 纯暗色极简风格
|
||||
- [x] 共享 `useLogin` hook — 统一登录逻辑
|
||||
- [x] `localStorage('login-style')` 持久化选择
|
||||
|
||||
#### 19. 外观设置 (AppearanceSettings)
|
||||
- [x] Settings → Appearance tab
|
||||
- [x] 主题模式切换 (dark/light)
|
||||
- [x] 登录页风格切换 (5 种预览卡片 + 选择)
|
||||
- [x] 实时预览 + localStorage 持久化
|
||||
|
||||
### 六、其他功能
|
||||
|
||||
#### 20. gh-ost DDL 变更
|
||||
- [x] gh-ost dry-run (POST /ghost/dry-run)
|
||||
- [x] gh-ost execute (POST /ghost/execute)
|
||||
- [x] gh-ost status (GET /ghost/status/:taskId)
|
||||
- [x] gh-ost task list (GET /ghost/tasks)
|
||||
- [x] 仅 admin/dba 可访问
|
||||
|
||||
#### 21. 仪表盘 (Dashboard)
|
||||
- [x] 统计概览 (GET /dashboard/stats)
|
||||
- [x] 我的工单 (GET /dashboard/my-tickets)
|
||||
|
||||
#### 22. 定时任务 (AutoTaskPage)
|
||||
- [x] 定时工单列表
|
||||
- [x] 取消定时任务
|
||||
- [x] 定时任务统计
|
||||
|
||||
#### 23. 数据字典 (stub)
|
||||
- [x] 数据库/表/字段浏览端点
|
||||
- [x] 导出端点
|
||||
|
||||
#### 24. 前端优化
|
||||
- [x] React.lazy 代码分割
|
||||
- [x] Vite manualChunks (vendor 拆分)
|
||||
- [x] 首屏 -44% (2676KB → 1438KB)
|
||||
- [x] 暗色主题 (--dg- CSS 变量体系)
|
||||
- [x] 响应式布局
|
||||
- [x] 骨架屏加载动画
|
||||
- [x] 确认弹框 (useConfirm hook, 替代浏览器 confirm)
|
||||
- [x] Toast 通知 (右下角 3 秒消失)
|
||||
|
||||
#### 15. 后端基础设施
|
||||
- [x] JWT 认证 (30 分钟过期)
|
||||
- [x] run.sh PID 管理脚本 (start/stop/restart/status/logs/build/test)
|
||||
- [x] Alembic 数据库迁移
|
||||
- [x] Docker + docker-compose 部署
|
||||
- [x] CORS 策略
|
||||
- [x] 请求日志中间件
|
||||
|
||||
## 🔨 开发中 / 待实现
|
||||
|
||||
### 短期 (P1)
|
||||
- [ ] 通知功能前端页面完善
|
||||
- [ ] 两个页面 Redis 树抽取为共享组件
|
||||
- [ ] LDAP 认证对接 (后端已有 LdapConfig 模型)
|
||||
|
||||
### 中期 (P2)
|
||||
- [ ] Schema 漂移检测 (后端有 SchemaSnapshot/SchemaDrift 模型)
|
||||
- [ ] 快照对比可视化
|
||||
- [ ] 数据脱敏规则 (MaskingRule 模型)
|
||||
- [ ] SQL 格式化后端 (sqlparse)
|
||||
- [ ] EXPLAIN 真实解析
|
||||
- [ ] 慢查询实时推送 (WebSocket)
|
||||
- [ ] CSV 导出功能对接
|
||||
|
||||
### 远期 (P3)
|
||||
- [ ] 库级权限控制
|
||||
- [ ] 查询审批工作流
|
||||
- [ ] 多租户支持
|
||||
- [ ] 审批流模板持久化
|
||||
- [ ] 集群模式支持
|
||||
- [x] 确认弹框 (useConfirm hook)
|
||||
- [x] Toast 通知
|
||||
|
||||
## 📊 项目统计
|
||||
|
||||
|| 指标 | 数值 |
|
||||
||------|------|
|
||||
|| 总提交 | 56+ |
|
||||
|| 源文件 | 328+ |
|
||||
|| 后端代码 | ~23,000 行 Python |
|
||||
|| 前端代码 | ~15,000 行 TypeScript/TSX |
|
||||
|| API 路由 | 152+ 条 |
|
||||
|| 测试用例 | 1,075+ 个 |
|
||||
|| 数据库表 | 28+ 张 |
|
||||
|| ORM 模型 | 22+ 个 |
|
||||
|| 前端页面 | 26+ 个 |
|
||||
|| 审核规则 | 127 条 |
|
||||
|| 系统配置 | 18 项 |
|
||||
|| 定时调度 | APScheduler + SQLite 持久化 |
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| Go 源文件 | 27+ |
|
||||
| API 路由 | 120+ 条 |
|
||||
| GORM 模型 | 25+ 个 |
|
||||
| Handler 文件 | 17 个 |
|
||||
| 前端页面 | 24+ 个 |
|
||||
| 登录页主题 | 5 种 |
|
||||
| 审核规则 | 127 条 (6 组) |
|
||||
| 数据库驱动 | 5 种 (MySQL/PG/Redis/Mongo/SQLite) |
|
||||
| Redis Handler | 9 个 |
|
||||
| MySQL Detail 端点 | 7 个 |
|
||||
| 种子用户 | 4 个 |
|
||||
| Git 仓库 | https://gitee.com/attacker/sql-platform.git |
|
||||
|
||||
## 🏗️ 数据库连接器支持矩阵
|
||||
## 🏗️ 数据库驱动支持矩阵
|
||||
|
||||
| 数据库 | 连接库 | 查询 | 执行 | 审核 | 库表浏览 |
|
||||
|--------|--------|------|------|------|----------|
|
||||
| MySQL | aiomysql | ✅ | ✅ | ✅ (67规则) | ✅ |
|
||||
| PostgreSQL | asyncpg | ✅ | ✅ | ✅ (31规则) | ✅ |
|
||||
| Redis | redis.asyncio | ✅ | ✅ | ✅ (25规则) | ✅ (Keys树) |
|
||||
| MongoDB | pymongo | ✅ | ✅ | ✅ (31规则) | ✅ (集合) |
|
||||
| SQLite | sqlite3 | ✅ | — | — | — |
|
||||
| 数据库 | Go 驱动 | 查询 | 执行 | 审核 | 详情浏览 |
|
||||
|--------|---------|------|------|------|----------|
|
||||
| MySQL | go-sql-driver/mysql v1.10.0 | ✅ | ✅ | ✅ (67规则) | ✅ (7 endpoints) |
|
||||
| PostgreSQL | jackc/pgx/v5 v5.9.2 | ✅ | ✅ | ✅ (31规则) | ✅ |
|
||||
| Redis | go-redis/v9 v9.19.0 | ✅ | ✅ | ✅ (25规则) | ✅ (9 handlers) |
|
||||
| MongoDB | go-mongo-driver/v2 | ✅ (stub) | ✅ (stub) | ✅ (31规则) | ✅ (stub) |
|
||||
| SQLite | gorm.io/driver/sqlite | ✅ (元数据) | — | — | — |
|
||||
Reference in new issue
Block a user