Files
leaudit-platform-backend/scripts/创建sql
..

SQL 脚本目录说明

本目录统一存放数据库相关 SQL,避免根目录下脚本分散。

命名约定

  • schema_*:建表、补字段、补索引、结构补丁
  • seed_*:初始化数据、菜单、权限、路由种子
  • precheck_*:正式迁移/删表前的只读巡检脚本
  • migrate_*:数据迁移、历史结构升级
  • *_patch.sql:补丁脚本
  • *_audit.sql:审计/巡检类脚本

推荐执行方式

执行生产脚本时建议统一带上 ON_ERROR_STOP=1

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 也请继续放这里