# 数据表与菜单域审计记录 > 审计范围:`backend/model`、`backend/pkg/database/database.go`、主要 controller/service/repository 引用、`backend/seed/seed.go` 默认菜单权限。 > 目标:按菜单域整理表清单,记录表名前缀、设计合理性、疑似旧表/无用表和后续整改建议。 ## 重建版目标设计 测试环境允许直接重建时,建议采用 **Schema v2 全局统一方案**:按菜单域和平台基础域重新归类,旧表不做兼容 rename,直接调整 `TableName()`、AutoMigrate 清单、种子数据和相关查询引用,然后清空数据库重建。 ### 全局命名原则 1. 表名统一使用:`_`。 2. 领域前缀与菜单域保持一致,避免同一功能散落在 `sys_`、`ops_`、`monitor_`。 3. 关联表统一使用:`__` 或同域 `__`。 4. 配置类表可用单数语义但表名仍用复数,例如 `deploy_build_master_configs`。 5. 时序/日志大表必须明确后缀:`*_samples`、`*_histories`、`*_events`、`*_logs`。 6. 不再新增无前缀表。 ### 目标前缀 | 前缀 | 菜单/领域 | 说明 | | --- | --- | --- | | `iam_` | 身份与权限 | 用户、角色、权限、凭据、LDAP、资源级授权 | | `sys_` | 系统基础配置 | 系统任务、站内导航、全局配置 | | `audit_` | 安全审计 | 操作审计、登录日志、终端/RDP 会话、命令审计 | | `asset_` | 资产/云资源 | 服务器、云账号、云区域、域名、账单、资源型号 | | `k8s_` | Kubernetes | 集群与同步缓存资源 | | `deploy_` | 应用发布 | 流水线、运行记录、发布、环境、构建节点、工具 | | `monitor_` | 监控告警 | 告警、指标、Agent、SNMP、站点拨测、中间件、数据源 | | `ops_` | 自动化运维 | 定时任务、脚本、远程执行、Ansible 如保留 | | `approval_` | 资源申请/审批 | 模板、流程、实例、步骤 | | `ai_` | AIOps/AI | LLM、会话、分析轨迹、Agent CLI 运行记录 | ### 目标表清单 #### IAM / 系统基础 | 目标表 | 来源/处理 | | --- | --- | | `iam_users` | 保留 | | `iam_roles` | 保留 | | `iam_permissions` | 保留 | | `iam_user_roles` | 保留 | | `iam_role_permissions` | 替换 `role_permissions` | | `iam_credentials` | 保留,作为全局凭据唯一主表 | | `iam_ldap_configs` | 保留 | | `iam_item_roles` | 保留 | | `iam_user_item_roles` | 保留 | | `iam_log_scope_roles` | 从 `monitor_log_scope_roles` 调整,日志查询权限本质是权限控制 | | `iam_user_log_scope_roles` | 从 `monitor_user_log_scope_roles` 调整 | | `sys_system_task_statuses` | 从 `sys_system_task_status` 调整为复数 | | `sys_navigation_groups` | 保留 | | `sys_navigation_links` | 替换 `navigation_links` | #### 安全审计 | 目标表 | 来源/处理 | | --- | --- | | `audit_operation_logs` | 替换 `sys_audit_logs` | | `audit_settings` | 替换 `sys_audit_settings` | | `audit_login_logs` | 替换 `sys_login_logs` | | `audit_terminal_sessions` | 替换 `sys_terminal_sessions` | | `audit_rdp_sessions` | 替换 `sys_rdp_sessions` | | `audit_session_commands` | 替换 `sys_session_commands` | #### 资产 / 云资源 | 目标表 | 来源/处理 | | --- | --- | | `asset_servers` | 保留 | | `asset_host_groups` | 保留 | | `asset_cloud_platforms` | 替换 `asset_clouds` | | `asset_cloud_accounts` | 保留,敏感字段统一转凭据 ID | | `asset_cloud_regions` | 替换 `asset_regions` | | `asset_domains` | 保留 | | `asset_resource_models` | 保留 | | `asset_cloud_billing_records` | 替换 `asset_cloud_billings`,语义更明确 | | `asset_cloud_billing_alert_rules` | 替换 `monitor_billing_alert_rules`,账单告警属于资产账单域配置,触发事件再进监控事件 | #### Kubernetes | 目标表 | 来源/处理 | | --- | --- | | `k8s_clusters` | 替换 `kubernetes_clusters` | | `k8s_nodes` | 替换 `kubernetes_nodes` | | `k8s_pods` | 替换 `kubernetes_pods` | | `k8s_deployments` | 替换 `kubernetes_deployments` | | `k8s_services` | 替换 `kubernetes_services` | | `k8s_ingresses` | 替换 `kubernetes_ingresses` | | `k8s_topology_layouts` | 替换 `kubernetes_topology_layouts` | #### 应用发布 | 目标表 | 来源/处理 | | --- | --- | | `deploy_pipelines` | 替换 `ops_pipelines` | | `deploy_pipeline_runs` | 替换 `ops_pipeline_runs` | | `deploy_app_releases` | 保留 | | `deploy_environments` | 保留 | | `deploy_build_nodes` | 保留 | | `deploy_build_master_configs` | 替换 `deploy_build_master_config` | | `deploy_pipeline_members` | 保留 | | `deploy_user_groups` | 保留 | | `deploy_user_group_members` | 保留 | | `deploy_tools` | 保留 | | 已删除 `deploy_pipeline_repos` | 发布配置直接使用 `iam_credentials` + Pipeline 凭据字段 | | 已删除 `deploy_pipeline_registries` | 发布配置直接使用 `iam_credentials` + Pipeline 凭据字段 | #### 监控告警 | 目标表 | 来源/处理 | | --- | --- | | `monitor_targets` | 保留 | | `monitor_metrics` | 保留,作为指标定义表 | | `monitor_metric_samples` | 合并/替换 `metric_values` 和 `monitor_metric_histories` | | `monitor_metric_aggregates` | 替换 `monitor_metrics_aggregate` | | `monitor_metric_tags` | 保留 | | `monitor_alert_rules` | 保留但只保留一个模型定义 | | `monitor_alert_conditions` | 保留 | | `monitor_alert_events` | 保留 | | `monitor_alert_channels` | 替换 `monitor_notify_channels` | | `monitor_alert_contacts` | 保留 | | `monitor_alert_contact_groups` | 保留 | | `monitor_alert_notify_policies` | 保留 | | `monitor_alert_notify_templates` | 保留 | | `monitor_alert_notify_settings` | 保留 | | `monitor_alert_upgrades` | 保留 | | `monitor_alert_upgrade_records` | 保留 | | `monitor_alert_silences` | 保留 | | `monitor_agent_reports` | 保留 | | `monitor_agent_tasks` | 保留 | | `monitor_agent_rules` | 保留 | | `monitor_agent_alerts` | 保留 | | `monitor_agent_port_policies` | 替换 `monitor_agent_port_policy`,并加入迁移 | | `monitor_health_probes` | 保留 | | `monitor_prometheus_datasources` | 保留 | | `monitor_zabbix_datasources` | 保留 | | `monitor_log_datasources` | 保留 | | `monitor_trace_datasources` | 保留 | | `monitor_site_tasks` | 替换 `ops_site_tasks` | | `monitor_site_results` | 替换 `ops_site_results` | | `monitor_site_alerts` | 替换 `ops_site_alerts` | | `monitor_snmp_devices` | 替换 `ops_snmp_devices` | | `monitor_snmp_templates` | 替换 `ops_snmp_templates` | | `monitor_snmp_template_oids` | 替换 `ops_snmp_template_oids` | | `monitor_snmp_samples` | 替换 `ops_snmp_metrics`,删除 `snmp_history` | | `monitor_snmp_interfaces` | 替换 `ops_snmp_interfaces` | | `monitor_dashboards` | 保留一个大屏主表 | | `monitor_dashboard_panels` | 替换 `dashboard_panels` | | 已删除 `monitor_custom_dashboards` | 合并到 `monitor_dashboards`,用 `type/custom` 区分 | | 删除 `monitor_metric_data` | 用 `monitor_metrics` 替代 | #### 自动化运维 | 目标表 | 来源/处理 | | --- | --- | | `ops_cron_jobs` | 保留 | | `ops_scripts` | 保留 | | `ops_task_executions` | 保留 | | `ops_remote_executions` | 建议新增,记录远程批量执行任务级审计 | | `ops_ansible_playbooks` | 如保留 Ansible 页面则保留,否则删除 | | `ops_ansible_jobs` | 同上 | | `ops_ansible_inventories` | 同上 | #### 审批 | 目标表 | 来源/处理 | | --- | --- | | `approval_templates` | 替换 `sys_approval_templates` | | `approval_processes` | 保留 | | `approval_steps` | 保留 | | `approval_workflows` | 替换 `sys_approval_workflows` | | `approval_workflow_steps` | 替换 `sys_approval_workflow_steps` | 建议:模板保留表单 schema,工作流表保留审批流定义,流程实例引用 `workflow_id`,逐步弱化 `flow_config` JSON。 #### AIOps / AI | 目标表 | 来源/处理 | | --- | --- | | `ai_llm_configs` | 保留 | | `ai_chat_histories` | 保留 | | `ai_analysis_traces` | 保留 | | `ai_runs` | 保留 | | `ai_run_messages` | 保留 | | `ai_run_spans` | 保留 | | `ai_capabilities` | 保留 | | `ai_capability_policies` | 保留 | | `ai_ops_sessions` | 替换 `ops_sessions` | | `ai_ops_commands` | 替换 `ops_commands` | ### 重建执行策略 1. 修改所有 `TableName()`,把目标表名一次性统一。 2. 修改 GORM many2many tag:`role_permissions` -> `iam_role_permissions`。 3. 修改硬编码 `db.Table(...)` 和 SQL 清理逻辑。 4. 精简 AutoMigrate:删除已合并/废弃模型,补上漏迁移模型。 5. 更新 seed:默认权限、审批模板、工具配置、演示数据按新表生成。 6. 删除测试库数据卷或 SQLite 文件,重新启动服务让 AutoMigrate 建表。 7. 跑 `go build`、`npx tsc --noEmit`、集成测试和关键页面验证。 ## 总体结论 当前表名前缀没有形成统一分层,主要使用 `asset_`、`monitor_`、`ops_`、`deploy_`、`sys_`、`iam_`、`ai_`、`kubernetes_`。整体可以运行,但存在几类需要后续整改的问题: 1. **无前缀或前缀不一致表**:`approval_processes`、`approval_steps`、`navigation_links`、`metric_values`、`dashboard_panels`、`snmp_history`、`role_permissions`。 2. **同一职责多套表并存**:审批有 `sys_approval_templates / approval_processes / approval_steps` 与 `sys_approval_workflows / sys_approval_workflow_steps`;监控大屏有 `monitor_dashboards / dashboard_panels` 与 `monitor_custom_dashboards`;告警规则有 `AlertRule` 和 `MonitorAlertRule` 共用 `monitor_alert_rules`。 3. **表定义但迁移/引用不完整**:`SNMPHistory` 定义了 `snmp_history`,但未进入 AutoMigrate,代码实际查询 `ops_snmp_metrics`;`AgentPortPolicy` 有控制器引用,但未进入 AutoMigrate。 4. **疑似旧表/低价值表**:`sys_log_sources`、`sys_log_entries` 属于旧日志模块,与当前日志中心 `monitor_log_datasources` + 外部 Loki/ES 架构重复;`ops_ansible_*` 有种子数据但“远程执行”现已主要走 SSH/脚本执行,需要确认是否仍保留 Ansible 页面。 5. **设计一致性问题**:大量 JSON 字符串字段承载结构化配置,短期可接受,但要明确边界;高频时序表缺少统一保留策略和分区方案;部分关联表缺少显式外键/唯一约束命名规范。 ## 现状前缀评估 > 本节是现状评估口径;重建整改时以“重建版目标设计”为准。 | 领域 | 当前/建议前缀 | 说明 | | --- | --- | --- | | IAM/权限/凭据 | `iam_` | 用户、角色、权限、LDAP、凭据、ItemRole | | 系统基础配置 | `sys_` | 系统任务、站内导航、全局配置 | | 安全审计 | `audit_` | 重建后从 `sys_` 拆出,避免系统配置与审计数据混在一起 | | 资产/云资源 | `asset_` | 服务器、云账号、域名、账单、资源模型 | | Kubernetes | `k8s_` | 重建后统一短前缀,替换当前 `kubernetes_` | | 发布/部署 | `deploy_` | 环境、凭据、工具、发布记录、成员权限 | | 自动化执行 | `ops_` | 定时任务、脚本、任务执行、远程执行记录 | | 监控告警 | `monitor_` | 指标、目标、告警、数据源、站点拨测、SNMP、Agent | | 审批 | `approval_` | 重建后模板、流程、实例统一归入审批域 | | AI/AIOps | `ai_` | LLM 配置、会话、分析轨迹、能力策略 | ## 问题清单 | 编号 | 严重度 | 表/模型 | 问题 | 建议 | | --- | --- | --- | --- | --- | | DB-001 | 高 | `AlertRule` / `MonitorAlertRule` -> `monitor_alert_rules` | 两个模型返回同一张表,字段定义不同。AutoMigrate 会叠加字段,后续维护容易误删/误覆盖。 | 合并为一个模型或拆成 `monitor_alert_rules` 与 `monitor_probe_alert_rules`,迁移前确认线上字段使用。 | | DB-002 | 高 | `AgentPortPolicy` -> `monitor_agent_port_policy` | 控制器有读写,但未加入 AutoMigrate,新库端口策略接口可能报“表不存在”。 | 加入 AutoMigrate;表名建议改为复数 `monitor_agent_port_policies`,如改名需迁移旧表。 | | DB-003 | 高 | `SNMPHistory` -> `snmp_history` | 定义未迁移,代码未引用;清理逻辑清的是 `ops_snmp_metrics`。 | 若 `ops_snmp_metrics` 已兼任历史表,删除 `SNMPHistory`;否则新增迁移并把查询/清理改到 `monitor_snmp_histories`。 | | DB-004 | 中 | `approval_processes`、`approval_steps` | 审批流程表无前缀,而模板表是 `sys_approval_templates`。 | 重建后统一为 `approval_templates`、`approval_processes`、`approval_steps`、`approval_workflows`。 | | DB-005 | 中 | `sys_approval_workflows`、`sys_approval_workflow_steps` | 与 `sys_approval_templates.flow_config` 和 `approval_steps` 职责有重叠。 | 明确“模板流程配置”和“流程定义管理”的关系;如果新工作流已替代模板内 JSON,应迁移数据并下线旧字段。 | | DB-006 | 中 | `navigation_links` | 导航组是 `sys_navigation_groups`,链接表无前缀。 | 重建后改为 `sys_navigation_links`。 | | DB-007 | 中 | `metric_values`、`monitor_metric_histories`、`monitor_metrics_aggregate` | 监控时序有三套表:原始值、简化历史、聚合;当前控制器大量使用 `monitor_metric_histories`,`metric_values` 引用少。 | 重建后合并为 `monitor_metric_samples` + `monitor_metric_aggregates`。 | | DB-008 | 已处理 | `monitor_dashboards`、`monitor_dashboard_panels` | 自定义大屏旧模型与路由已删除,统一使用 `monitor_dashboards` + `monitor_dashboard_panels`。 | 后续仅补齐新大屏 API/页面。 | | DB-009 | 中 | `role_permissions` | GORM many2many 明确指定为 `role_permissions`,无 `iam_` 前缀。 | 重建后改为 `iam_role_permissions`。 | | DB-010 | 中 | `sys_log_sources`、`sys_log_entries` | 旧日志采集/入库表,与当前日志中心外部数据源架构重复。 | 重建后删除,日志中心只保留 `monitor_log_datasources` 和外部查询结果。 | | DB-011 | 中 | `ops_site_*`、`ops_snmp_*` | 站点拨测和 SNMP 属于监控域,但表名前缀使用 `ops_`。 | 重建后改为 `monitor_site_*`、`monitor_snmp_*`。 | | DB-012 | 中 | `ai_runs`、`ops_sessions`、`ops_commands` | AI 运行表和人机执行会话跨 `ai_` / `ops_`,边界不清。 | 重建后改为 `ai_ops_sessions`、`ai_ops_commands`。 | | DB-013 | 低 | `backend/model/monitor.go`、`deploy_tool.go` | 模型文件超过或接近项目红线,维护成本高。 | 后续按子域拆分:target/metric/dashboard/health_probe/tool_registry。 | ## 菜单域表清单 ### 仪表盘 | 功能 | 表 | 评价 | | --- | --- | --- | | 首页统计 | 多域聚合,无独立主表 | 统计来自资产、告警、K8s、流水线等表,合理。 | | 自定义监控仪表盘 | `monitor_dashboards`、`monitor_dashboard_panels` | 已统一到监控大屏主表和面板表。 | ### 资产管理 / 云资源 | 功能 | 表 | 评价 | | --- | --- | --- | | 服务器管理 | `asset_servers` | 前缀规范;字段较多但与 Agent/RDP/SSH 场景匹配。 | | 主机组 | `asset_host_groups` | 放资产域合理。 | | 云平台 | `asset_clouds` | 命名偏泛,实际是云平台类型/供应商。可考虑改为 `asset_cloud_platforms`。 | | 云账号 | `asset_cloud_accounts` | 前缀规范;凭证字段需确认是否已统一走 `iam_credentials` 加密。 | | 云区域 | `asset_regions` | 前缀规范;如果仅云区域,建议 `asset_cloud_regions` 更清晰。 | | 域名管理 | `asset_domains` | 前缀规范。 | | 资源型号 | `asset_resource_models` | 前缀规范。 | | 云账单 | `asset_cloud_billings` | 前缀规范。 | | 账单告警规则 | `monitor_billing_alert_rules` | 归入监控域合理,但与资产账单强关联,需文档化。 | ### Kubernetes | 功能 | 表 | 评价 | | --- | --- | --- | | 集群管理 | `kubernetes_clusters` | 当前统一 `kubernetes_` 前缀,虽较长但一致。 | | 节点缓存 | `kubernetes_nodes` | 从集群同步缓存,合理。 | | Pod 缓存 | `kubernetes_pods` | 从集群同步缓存,合理。 | | Deployment 缓存 | `kubernetes_deployments` | 从集群同步缓存,合理。 | | Service 缓存 | `kubernetes_services` | 从集群同步缓存,合理。 | | Ingress 缓存 | `kubernetes_ingresses` | 从集群同步缓存,合理。 | | 拓扑布局 | `kubernetes_topology_layouts` | 用户布局数据,合理。 | 建议:重建后统一改为 `k8s_`,后续不再新增 `kubernetes_` 表。 ### 应用发布 / CI/CD | 功能 | 表 | 评价 | | --- | --- | --- | | 流水线 | `ops_pipelines` | 历史命名属 `ops_`,但该域现在已经有 `deploy_` 前缀,建议长期统一。 | | 流水线运行 | `ops_pipeline_runs` | 同上;日志存在 `logs longtext`,数据增长需清理策略。 | | 应用发布 | `deploy_app_releases` | 前缀规范。 | | Git 仓库配置 | `deploy_pipeline_repos` | 可能与统一凭据 `iam_credentials` 存在职责重叠,当前通过 `credential_id` 关联可接受。 | | 镜像仓库配置 | `deploy_pipeline_registries` | 同上。 | | 发布环境 | `deploy_environments` | 前缀规范。 | | 构建节点 | `deploy_build_nodes`、`deploy_build_master_config` | 前缀规范。 | | 流水线成员 | `deploy_pipeline_members` | 前缀规范;直接用户 + 用户组双授权设计合理。 | | 发布用户组 | `deploy_user_groups`、`deploy_user_group_members` | 前缀规范,但与 IAM 角色/组职责需边界清晰。 | | ItemRole | `iam_item_roles`、`iam_user_item_roles` | 放 IAM 域合理,用于流水线正则授权。 | | 工具配置 | `deploy_tools` | 前缀规范。 | 建议:重建后统一改为 `deploy_pipelines`、`deploy_pipeline_runs`。 ### 监控告警 | 功能 | 表 | 评价 | | --- | --- | --- | | 告警规则/事件 | `monitor_alert_rules`、`monitor_alert_events` | 主表合理;但规则模型重复是高风险问题。 | | 告警条件/模板/升级/静默 | `monitor_alert_conditions`、`monitor_alert_notify_templates`、`monitor_alert_upgrades`、`monitor_alert_upgrade_records`、`monitor_alert_silences` | 前缀规范;需确认哪些已接入 UI/引擎。 | | 通知渠道/联系人 | `monitor_notify_channels`、`monitor_alert_contacts`、`monitor_alert_contact_groups`、`monitor_alert_notify_policies`、`monitor_alert_notify_settings` | 前缀规范;通知设置/策略/模板职责较多,建议后续画数据流。 | | Agent 指标 | `monitor_agent_reports`、`monitor_metrics_aggregate` | 前缀规范;按 hostname 关联服务器,删除服务器时有清理。 | | Agent 任务/规则/告警 | `monitor_agent_tasks`、`monitor_agent_rules`、`monitor_agent_alerts` | 前缀规范。 | | Agent 端口策略 | `monitor_agent_port_policy` | 未迁移,且表名非复数。 | | 监控目标/指标 | `monitor_targets`、`monitor_metrics`、`monitor_metric_histories`、`monitor_metric_tags`、`metric_values` | 需要统一时序表职责和命名前缀。 | | 健康探针 | `monitor_health_probes` | 前缀规范;结果不独立入库,随 Agent 心跳更新。 | | Prometheus/Zabbix/日志/链路数据源 | `monitor_prometheus_datasources`、`monitor_zabbix_datasources`、`monitor_log_datasources`、`monitor_trace_datasources` | 前缀规范。 | | 站点拨测 | `ops_site_tasks`、`ops_site_results`、`ops_site_alerts` | 功能属监控,前缀却是 `ops_`。 | | SNMP | `ops_snmp_devices`、`ops_snmp_templates`、`ops_snmp_template_oids`、`ops_snmp_metrics`、`ops_snmp_interfaces`、`snmp_history` | 功能属监控;`snmp_history` 未迁移/未引用。 | | 指标目录旧表 | `monitor_metric_data` | 需确认是否仍有 UI/引擎依赖;可能与 `monitor_metrics` 重复。 | ### 自动化运维 | 功能 | 表 | 评价 | | --- | --- | --- | | 定时任务 | `ops_cron_jobs` | 前缀规范。 | | 脚本库 | `ops_scripts` | 前缀规范。 | | 执行记录 | `ops_task_executions` | 前缀规范。 | | Ansible | `ops_ansible_playbooks`、`ops_ansible_jobs`、`ops_ansible_inventories` | 有模型和种子数据;需确认 UI 是否仍作为主功能。若已由 Go-native SSH 替代,可降级为 deprecated。 | ### AIOps / AI | 功能 | 表 | 评价 | | --- | --- | --- | | LLM 配置 | `ai_llm_configs` | 前缀规范。 | | 对话历史 | `ai_chat_histories` | 前缀规范。 | | 告警分析轨迹 | `ai_analysis_traces` | 前缀规范。 | | Agent CLI 运行 | `ai_runs`、`ai_run_messages`、`ai_run_spans` | 前缀规范。 | | 能力注册/策略 | `ai_capabilities`、`ai_capability_policies` | 前缀规范。 | | 人机执行会话 | `ops_sessions`、`ops_commands` | 与 AI Agent 强关联但用 `ops_`,边界需确认。 | ### 资源申请 / 审批 | 功能 | 表 | 评价 | | --- | --- | --- | | 审批模板 | `sys_approval_templates` | 前缀规范。 | | 审批实例 | `approval_processes` | 无前缀。 | | 审批步骤 | `approval_steps` | 无前缀。 | | 审批工作流 | `sys_approval_workflows`、`sys_approval_workflow_steps` | 前缀规范,但与模板内 `flow_config` 和实例步骤存在职责重叠。 | 建议:先确认现行前端使用旧模板流程还是新 workflow;再决定迁移方向。 ### 安全审计 | 功能 | 表 | 评价 | | --- | --- | --- | | 操作审计 | `sys_audit_logs` | 前缀规范。 | | 审计策略 | `sys_audit_settings` | 前缀规范。 | | 登录日志 | `sys_login_logs` | 前缀规范。 | | 终端会话 | `sys_terminal_sessions` | 前缀规范。 | | RDP 会话 | `sys_rdp_sessions` | 前缀规范。 | | 会话命令 | `sys_session_commands` | 前缀规范。 | ### 系统管理 / IAM | 功能 | 表 | 评价 | | --- | --- | --- | | 用户 | `iam_users` | 前缀规范。 | | 角色 | `iam_roles` | 前缀规范。 | | 权限 | `iam_permissions` | 前缀规范。 | | 用户角色关系 | `iam_user_roles` | GORM many2many 指定,前缀规范。 | | 角色权限关系 | `role_permissions` | GORM many2many 指定,无 `iam_` 前缀。 | | LDAP | `iam_ldap_configs` | 前缀规范。 | | 凭据 | `iam_credentials` | 前缀规范;建议继续作为全局凭据统一入口。 | | 日志范围权限 | `monitor_log_scope_roles`、`monitor_user_log_scope_roles` | 属日志中心/监控域,放 `monitor_` 合理。 | | 系统任务状态 | `sys_system_task_status` | 前缀规范。 | | 站内导航 | `sys_navigation_groups`、`navigation_links` | 链接表无前缀。 | ## 疑似可清理候选 测试库重建时可直接删除;生产整改前仍需查数据量、最近写入时间、controller/frontend 是否仍有入口。 | 表/模型 | 判断依据 | 建议动作 | | --- | --- | --- | | `snmp_history` / `SNMPHistory` | 未 AutoMigrate,未被业务引用。 | 重建后删除模型。 | | `sys_log_sources`、`sys_log_entries` | 旧日志入库模块,与日志中心外部数据源重复。 | 重建后删除。 | | `monitor_custom_dashboards` | 与 `monitor_dashboards` 重复。 | 已删除模型与路由,重建后不再创建。 | | `metric_values`、`monitor_metric_histories` | 时序职责重复。 | 重建后合并为 `monitor_metric_samples`。 | | `ops_ansible_*` | 远程执行主路径已偏 Go-native SSH。 | 若确认无页面入口,重建后删除;否则保留在 `ops_`。 | | `deploy_pipeline_repos`、`deploy_pipeline_registries` | Pipeline 已直接使用 `GitCredentialID` / `RegistryCredentialID`。 | 已删除模型、路由和前端旧配置入口,重建后不再创建。 | ## 迁移清单之外的 8 个模型决策(2026-08-04) 以下清单由 `TableName()` 与原 AutoMigrate 列表逐项比对得出。生产库不得再通过启动期 AutoMigrate 隐式创建这些表;后续仅允许由版本化迁移创建已确认保留的表。 | 模型 / 表 | 决策 | 依据与后续动作 | | --- | --- | --- | | `LogSource` / `sys_log_sources` | 保留 | 已有日志源 CRUD 路由。纳入首批基线迁移并保留数据。 | | `LogEntry` / `sys_log_entries` | 保留 | 已有查询与 Agent 日志写入逻辑。纳入首批基线迁移,并在保留策略中按高频日志数据处理。 | | `MetricData` / `monitor_metric_data` | DTO 化 | 仅被仪表盘作为 API 响应结构使用,不读写该表。后续移除 `TableName()`,不再创建或写入该表。 | | `MetricTag` / `monitor_metric_tags` | 暂不建表 | 当前没有 controller、service 或前端调用。保留类型定义待“指标样本模型”统一设计完成,再以独立迁移启用。 | | `MetricValue` / `monitor_metric_values` | 暂不建表 | 当前没有读写路径,且与 `monitor_metric_histories` 职责重叠。统一时序模型前不得创建新表。 | | `MonitorDashboard` / `monitor_dashboards` | 废弃 | 无业务引用;当前大屏走既有配置与外部数据源路径。后续删除模型定义,不纳入迁移。 | | `DashboardPanel` / `monitor_dashboard_panels` | 废弃 | 仅被废弃 `MonitorDashboard` 关联引用。后续随父模型删除,不纳入迁移。 | | `SNMPHistory` / `snmp_history` | 废弃 | 无业务引用,SNMP 当前实际数据表为 `ops_snmp_metrics`。后续删除模型,不纳入迁移。 | > 上述“暂不建表”和“废弃”均不执行生产 DROP TABLE;删除旧表须先完成数据量、最近写入时间、备份与恢复演练检查。 ## 后续整改顺序 1. **先统一命名和模型归属**:按 Schema v2 修改 `TableName()`、many2many tag、硬编码 SQL。 2. **处理重复模型**:合并 `AlertRule` / `MonitorAlertRule`、大屏表、指标时序表、审批 workflow/模板关系。 3. **删除废弃模型**:`SNMPHistory`、旧日志入库、旧仓库/镜像仓库配置、确认不用的 Ansible 表。 4. **重建测试库**:删除 SQLite 文件或 Docker 数据卷,让 AutoMigrate 从零建表。 5. **补充数据生命周期**:流水线日志、Agent 报告、指标样本、SNMP 样本、站点拨测结果、审计日志都需要保留期和清理任务。