Files
leaudit-platform-backend/scripts/创建sql/README.md
T

170 lines
5.0 KiB
Markdown
Raw 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.
# SQL 脚本目录说明
本目录统一存放数据库相关 SQL,避免根目录下脚本分散。
## 命名约定
- `schema_*`:建表、补字段、补索引、结构补丁
- `seed_*`:初始化数据、菜单、权限、路由种子
- `precheck_*`:正式迁移/删表前的只读巡检脚本
- `migrate_*`:数据迁移、历史结构升级
- `*_patch.sql`:补丁脚本
- `*_audit.sql`:审计/巡检类脚本
## 推荐执行方式
执行生产脚本时建议统一带上 `ON_ERROR_STOP=1`
```bash
psql -h <host> -U <user> -d <db_name> -v ON_ERROR_STOP=1 -f scripts/创建sql/<file>.sql
```
## 按模块分类
### 一、系统使用统计
- `schema_add_usage_stats.sql`
- 用途:补齐系统使用统计需要的库结构
- 主要内容:新增 `usage_login_events`、给 `sso_users` 增加 `last_login_at`、补 `leaudit_audit_runs.trigger_user_id` 统计索引
- 场景:上线“系统使用统计”后端接口前必跑
- `seed_usage_stats_rbac.sql`
- 用途:补齐“系统使用统计”菜单、权限点、角色授权
- 主要内容:新增 `/usage-stats` 路由、`usage_stats:*` 权限、给 `super_admin` / `provincial_admin` / `admin` 赋权
- 场景:库结构准备完成后执行
推荐顺序:
1. `schema_add_usage_stats.sql`
2. `seed_usage_stats_rbac.sql`
### 二、用户 / RBAC / 地区权限
- `user_rbac_schema_patch.sql`
- 用途:补齐用户、角色、权限、路由核心表结构
- 场景:新库初始化或旧库尚未具备 RBAC 基础表时
- `user_rbac_seed.sql`
- 用途:初始化基础角色、权限、路由种子
- 依赖:`user_rbac_schema_patch.sql`
- `user_rbac_comments_patch.sql`
- 用途:补充 RBAC 相关表和字段中文注释
- `user_rbac_migration_audit.sql`
- 用途:老系统迁移前数据审计
- 场景:检查空地区、脏角色、重复账号、无角色用户等风险
常见顺序:
1. `user_rbac_schema_patch.sql`
2. `user_rbac_seed.sql`
3. `user_rbac_comments_patch.sql`
4. `user_rbac_migration_audit.sql`(按需执行)
### 三、首页入口 / 文档类型 / 前端路由
- `schema_v2_add_evaluation_tables.sql`
- 用途:补充入口模块、文档类型及相关结构
- `seed_home_entry_modules.sql`
- 用途:初始化首页入口模块并绑定既有文档类型
- `seed_frontend_route_scope.sql`
- 用途:补齐前端真实菜单树仍需暴露的路由范围
常见顺序:
1. `schema_v2_add_evaluation_tables.sql`
2. `seed_home_entry_modules.sql`
3. `seed_frontend_route_scope.sql`
### 四、评查点分组迁移
- `precheck_rule_group_migration.sql`
- 用途:正式迁移前巡检当前分组树、规则集绑定、入口模块映射
- 特点:只读,不改数据
- `migrate_rule_groups_to_business_roots.sql`
- 用途:按“业务大类根”做正式迁移
- 说明:当前正式迁移入口脚本
- `migrate_rule_groups_to_doc_type_roots.sql`
- 用途:历史草案保留
- 说明:已废弃,仅兼容历史引用,请改用 `migrate_rule_groups_to_business_roots.sql`
- `seed_rule_groups_rbac.sql`
- 用途:补齐评查点分组页面与接口的 RBAC 权限
- `seed_evaluation_points_rbac.sql`
- 用途:补齐规则/评查点相关权限点
推荐顺序:
1. `precheck_rule_group_migration.sql`
2. `migrate_rule_groups_to_business_roots.sql`
3. `seed_rule_groups_rbac.sql`
4. `seed_evaluation_points_rbac.sql`
### 五、旧绑定下线检查
- `precheck_drop_legacy_rule_type_bindings.sql`
- 用途:删除 `leaudit_rule_type_bindings` 前做覆盖率和风险检查
- 特点:只读,不删除数据
### 六、交叉评查
- `schema_v3_add_cross_review_phase1.sql`
- 用途:交叉评查第一阶段表结构
- `seed_cross_review_phase1_permissions.sql`
- 用途:交叉评查第一阶段权限种子
推荐顺序:
1. `schema_v3_add_cross_review_phase1.sql`
2. `seed_cross_review_phase1_permissions.sql`
### 七、RAG
- `schema_add_rag_chat.sql`
- 用途:RAG 数据集、会话等相关结构初始化/补充
### 八、文档版本管理
- `migrate_20260429_document_versioning.sql`
- 用途:给 `leaudit_documents` 补齐版本归档能力
- 主要内容:增加版本链字段、归一化名称、历史数据回填
## 快速索引
### 新环境最小起步
1. `user_rbac_schema_patch.sql`
2. `user_rbac_seed.sql`
3. `schema_v2_add_evaluation_tables.sql`
4. `seed_home_entry_modules.sql`
### 系统使用统计上线
1. `schema_add_usage_stats.sql`
2. `seed_usage_stats_rbac.sql`
### 评查点分组迁移
1. `precheck_rule_group_migration.sql`
2. `migrate_rule_groups_to_business_roots.sql`
3. `seed_rule_groups_rbac.sql`
### 交叉评查一期上线
1. `schema_v3_add_cross_review_phase1.sql`
2. `seed_cross_review_phase1_permissions.sql`
## 注意事项
- 生产执行前先备份,尤其是 `migrate_*``schema_*` 脚本
- `precheck_*` 为只读脚本,适合上线前先跑一遍
- `seed_*` 通常按幂等方式写,但仍建议先在测试/预发验证
- 当前仓库文档和脚本引用已统一迁移到 `scripts/创建sql/`,后续新增 SQL 也请继续放这里