Files
aiops/docs/database-schema.md
Logan.Li fd60361d93 chore: 统一本地服务器与远程仓库源码
- 合并 main 与 master 历史并以服务器结构为基线
- 保留迁移、数据保留、AWS 账单与部署安全能力
- 建立 SDD 规格和 CI 验证闭环
2026-08-05 20:03:25 +08:00

5.0 KiB
Raw Permalink Blame History

数据库设计

概述

AIOps 使用 GORM 作为 ORM 框架,支持 SQLite / MySQL / PostgreSQL。

  • 默认: SQLite(零配置,数据文件 backend/data/aiops.db)
  • 生产: 推荐使用 MySQL 或 PostgreSQL

首次初始化请显式执行 aiops migrate up 创建基线;服务启动时不会自动修改表结构。迁移流程见 数据库版本化迁移。 // Logan.Li

数据模型

用户体系

users - 用户表

字段 类型 说明
id uint 主键
username string 用户名(唯一)
password string 密码(bcrypt 加密)
email string 邮箱
phone string 手机号
real_name string 真实姓名
avatar string 头像 URL
status int 状态(1=正常 0=禁用)
last_login time 最后登录时间
created_at time 创建时间
updated_at time 更新时间

roles - 角色表

字段 类型 说明
id uint 主键
name string 角色名称
code string 角色代码
description string 角色描述
sort int 排序

permissions - 权限表

字段 类型 说明
id uint 主键
name string 权限名称
code string 权限代码
type string 权限类型(menu/btn/api)
path string 路由路径
method string HTTP 方法

服务器管理

servers - 服务器表

字段 类型 说明
id uint 主键
name string 服务器名称
hostname string 主机名
ip string IP 地址
port int SSH 端口
os string 操作系统
cpu int CPU 核数
memory int64 内存(MB)
disk int64 磁盘(GB)
status string 状态(online/offline/maintenance)
tags string 标签(JSON)
cloud_id uint 关联云账号
region string 地域

clouds - 云平台表

cloud_accounts - 云账号表

regions - 地域表

domains - 域名表

K8s 管理

k8s_clusters - K8s 集群表

字段 类型 说明
id uint 主键
name string 集群名称
version string K8s 版本
api_server string API Server 地址
kubeconfig string Kubeconfig 内容
status string 集群状态

k8s_nodes, k8s_pods, k8s_deployments, k8s_services, k8s_ingresses

监控告警

alert_rules - 告警规则表

字段 类型 说明
id uint 主键
name string 规则名称
description string 规则描述
type string 告警类型
source string 数据源
expression string PromQL 表达式
severity string 严重级别(critical/warning/info)
duration string 持续时间
notify_channels string 通知渠道(JSON)
enabled bool 是否启用

alert_events - 告警事件表

notify_channels - 通知渠道表

metric_data - 指标数据表

CI/CD

pipelines - 流水线表

pipeline_runs - 流水线执行记录表

app_releases - 应用发布表

自动化运维

cron_jobs - 定时任务表

scripts - 脚本表

task_executions - 任务执行记录表

playbooks - Ansible Playbook 表

审批流程

approval_templates - 审批模板表

approval_processes - 审批流程表

approval_steps - 审批步骤表

其他

navigation_groups - 导航分组表

audit_logs - 审计日志表

字段 类型 说明
id uint 主键
user_id *uint 操作用户 ID
module string 模块
action string 操作类型
resource string 资源标识
request string 请求内容
response string 响应内容
error string 错误信息
ip string 操作 IP
created_at time 操作时间

表关系

users ──< user_roles >── roles ──< role_permissions >── permissions

servers ──> cloud_accounts ──> clouds
servers ──> regions

alert_rules ──< alert_events
alert_rules ──> notify_channels

pipelines ──< pipeline_runs
app_releases ──> pipelines

approval_templates ──< approval_processes ──< approval_steps

navigation_groups ──< navigation_links

版本化迁移

模型基线由 backend/pkg/database/database.go 的 BootstrapSchema 定义,但只允许由 aiops migrate up 显式调用。后续变更按版本存放在 backend/migrations/,并记录至 sys_schema_migrations;已运行的服务不会在启动期间执行迁移。 // Logan.Li

切换数据库

MySQL

编辑 backend/config.yaml:

database:
  driver: mysql
  host: localhost
  port: 3306
  user: root
  password: your_password
  dbname: aiops
  charset: utf8mb4

PostgreSQL

database:
  driver: postgres
  host: localhost
  port: 5432
  user: postgres
  password: your_password
  dbname: aiops