2026-09-04 c97dbe784ed7127648cdd578d75e66837f09b4d7
docs(database): 添加数据库初始化与配置导出维护规则文档

- 定义全库初始化合并脚本规范:使用单一 docs/sql/config_export_all_<日期>.sql 文件
- 明确数据库环境角色:ruoyi-vue-pro 为源库权威数据源,test 为目标初始化库
- 规定合并文件两个阶段:阶段一处理表结构和配置数据,阶段二处理身份权限数据
- 详述各类数据归属:业务表结构/配置数据进阶段一,身份菜单权限进阶段二
- 提供维护清单和关键约束提醒,避免 DROP TABLE 误删和登录认证问题
已添加1个文件
已重命名1个文件
246 ■■■■ 文件已修改
.claude/rules/sql-config-export-init.md 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/sql/config_export_all_20260904.sql 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.claude/rules/sql-config-export-init.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
# æ•°æ®åº“初始化与配置导出维护规则
## è§„则
- å…¨åº“初始化只用**一份合并脚本**:`docs/sql/config_export_all_<日期>.sql`(建结构 + è¡¥é…ç½® + è¡¥èº«ä»½ä¸€æ¬¡æ€§å®Œæˆï¼‰ã€‚
- **任何业务/配置表结构、配置数据、系统身份/权限数据有变更**,都只重新生成这一份文件,保证其始终是最新可一键执行的版本。
- åªç»´æŠ¤åˆå¹¶æ–‡ä»¶ï¼›`config_export_<日期>.sql`、`test_identity_seed_<日期>.sql` åªæ˜¯ç”Ÿæˆå®ƒçš„中间体,不再单独提交维护。
- è¿åè§†ä¸ºé—漏:新库初始化出来缺表 / ç¼ºèœå• / ç™»ä¸ä¸Šï¼Œå±žäºŽæœªæŒ‰æœ¬è§„则同步。
## æ•°æ®åº“环境
| åº“ | è§’色 | è¯´æ˜Ž |
|------|------|------|
| `ruoyi-vue-pro` | **源库 / è¿è¡Œåº“ / æƒå¨** | dev/test/jhhg/yzfx ç­‰é…ç½®æŒ‡å‘它;运行后端(48080)读取;系统身份 / æƒé™ / èœå•的权威数据源。生成合并脚本时的数据来源。 |
| `test`(或其它空库) | **初始化目标** | æœ¬åœ° application-local ç­‰æŒ‡å‘的空白库;执行合并脚本在此建结构 + è¡¥é…ç½® + è¡¥èº«ä»½ã€‚ |
| å…¶ä»– | æ‹·è´ | ä¸Žæºåº“同结构同名拷贝,不参与本工作流。 |
> ç”Ÿæˆ/执行合并脚本需在**同时存在 `ruoyi-vue-pro` ä¸Žç›®æ ‡åº“的同一 MySQL å®žä¾‹**上执行(阶段二用跨库 `INSERT..SELECT`)。库名含 `-` æ—¶ SQL é‡Œè¦åŠ åå¼•å·ï¼ˆå¦‚ `` `ruoyi-vue-pro` ``)。
## å”¯ä¸€ç»´æŠ¤æ–‡ä»¶
**`docs/sql/config_export_all_20260904.sql`**(11249 è¡Œï¼Œåˆå¹¶ç‰ˆï¼‰ï¼Œå†…部两个阶段:
| é˜¶æ®µ | å†…容 | æ•°æ®æ¥æº |
|------|------|----------|
| é˜¶æ®µä¸€ï¼ˆåŽŸ config_export) | å…¨åº“ 413 å¼ è¡¨ `CREATE TABLE` + 6 ç±»é…ç½®æ•°æ®ï¼šâ‘ ååŒå®¡æ‰¹æµç¨‹ï¼ˆact_*/bpm æ¿€æ´»æµç¨‹å…ƒæ•°æ®+定义)②协同业务配置(bpm é™„ä»¶/分类/表单/用户组/监听/表达式)③BI å¤§å±/go-view â‘£MES ç¼–码规则 â‘¤ç³»ç»Ÿé…ç½®ä¸»æ•°æ®ï¼ˆsystem_dict_type/data、tenant、company_config)⑥AI/基础设施配置。**刻意排除身份(users)/菜单/日志/流水**。 | ruoyi-vue-pro å­—面量导出(自包含) |
| é˜¶æ®µäºŒï¼ˆåŽŸ test_identity_seed) | è¡¥èº«ä»½ + èœå•最小可登录数据:①`system_menu` å…¨éƒ¨æœ‰æ•ˆèœå• â‘¡`system_dept`/`post`(仅 deleted=0)③`system_role` è¶…管 super_admin â‘£`system_users` admin â‘¤`system_user_role` â‘¥`system_oauth2_client`(client_id='default')。幂等:先 `DELETE` å† `INSERT`。 | ruoyi-vue-pro è·¨åº“ `INSERT..SELECT` |
日常初始化:只需在目标空库执行 `config_export_all_20260904.sql` è¿™ä¸€ä»½ã€‚
## å„变更归属阶段(先判断"该放哪段")
| æ•°æ®ç±»åˆ« | æ”¾è¿›åˆå¹¶æ–‡ä»¶çš„哪个阶段 |
|----------|-----------|
| æ–°ä¸šåŠ¡è¡¨ç»“æž„ï¼ˆå…¨åº“ä»»æ„ CREATE TABLE) | é˜¶æ®µä¸€ï¼ˆç»“构) |
| æ–°å¢ž/改动的配置类数据(字典、BPM è¡¨å•/流程、编码规则、BI、AI、公司配置等) | é˜¶æ®µä¸€ï¼ˆæ•°æ®ï¼‰ |
| èœå• / éƒ¨é—¨ / å²—位 / è§’色 / ç”¨æˆ· / ç”¨æˆ·è§’色 / OAuth2 å®¢æˆ·ç«¯ | **阶段二**(不进阶段一) |
| ä¸šåŠ¡ä¸»æ•°æ® / å•据 / æµæ°´ï¼ˆç‰©æ–™ã€å·¥å•、检验单等运行数据) | éƒ½ä¸è¿›ï¼ˆä»…建空结构);业务数据由各自迁移脚本负责 |
## ç»´æŠ¤æ¸…单(有变更时按序执行)
1. åˆ¤æ–­å˜æ›´å±žäºŽ"表结构 / é…ç½®æ•°æ®"还是"身份 / æƒé™",确定它应落在阶段一还是阶段二。
2. **重新生成合并文件** `config_export_all_<日期>.sql`(用当天日期命名新版本,旧版保留备查):
   - é˜¶æ®µä¸€ï¼šä»Ž `ruoyi-vue-pro` å¯¼å‡ºå…¨åº“结构 + 6 ç±»é…ç½®æ•°æ®ã€‚
   - é˜¶æ®µäºŒï¼šæ›´æ–°èº«ä»½/菜单/OAuth2 è¡¥å¯¼æ®µï¼ˆå¦‚加新菜单、新默认角色)。
   - å°†ä¸¤æ®µå†…容按「阶段一 â†’ åˆ†é𔿳¨é‡Šé˜¶æ®µäºŒ â†’ é˜¶æ®µäºŒã€æ‹¼æŽ¥æˆä¸€ä»½å®Œæ•´æ–‡ä»¶ã€‚
3. å…¨åº“结构变化后,核对 Mapper/DO æ˜¯å¦ä¸Žè¡¨ç»“构一致(`mvn compile -q` ä¸å—表结构影响,但需人工核对)。
## å…³é”®çº¦æŸä¸Žå‘(避免踩)
- âš  é˜¶æ®µä¸€å«**全库 `DROP TABLE IF EXISTS`**,会清空非其建表的所有表数据,**只能在全新/可覆盖空库执行**,禁止在运行库直接跑。
- âš  è¶…管 `super_admin` ç™»å½•后由代码**直接返回全部菜单**,故**不需要 `system_role_menu` è¡Œ**;但 `system_menu` è¡¨å¿…须有数据。若未来要支持普通角色登录,则需补该角色 â†’ `system_role_menu` â†’ `system_user_role` å…¨é“¾è·¯ã€‚
- âš  ç™»å½•/刷新令牌**必须**有 `system_oauth2_client` ä¸­ `client_id='default'` çš„记录,否则 `validOAuthClientFromCache` æŠ¥é”™ç™»ä¸ä¸Šã€‚
- å­—å…¸ `system_dict_type`/`system_dict_data` ç”±é˜¶æ®µä¸€å¯¼å…¥ï¼Œé˜¶æ®µäºŒä¸é‡å¤å¤„理。
- æºåº“ `system_dept`/`system_post` å«è¾ƒå¤šè½¯åˆ é™¤è¡Œï¼Œé˜¶æ®µäºŒä»…拷贝 `deleted=0` çš„æœ‰æ•ˆè¡Œã€‚
- é˜¶æ®µä¸€è‡ªåŒ…含(字面量 INSERT),不依赖源库在线;阶段二依赖源库在线做跨库拷贝。
docs/sql/config_export_all_20260904.sql
ÎļþÃû´Ó docs/sql/config_export_20260904.sql ÐÞ¸Ä
@@ -1,11 +1,11 @@
-- =======================================================================
-- æ–‡ä»¶ï¼šconfig_export_20260904.sql
-- æ–‡ä»¶ï¼šconfig_export_20260904.sql.sql
-- ç”¨é€”:ruoyi-vue-pro「全库表结构 + 6 ç±»é…ç½®æ•°æ®ã€å¯¼å‡ºï¼Œä¾›åŒç»“构全新库初始化
-- æ¥æºåº“:ruoyi-vue-pro
-- å¯¼å‡ºæ—¶é—´ï¼š2026-09-04T06:56:33.860Z
-- å¯¼å‡ºæ—¶é—´ï¼š2026-09-04T07:14:22.064Z
-- èŒƒå›´ï¼šå…¨åº“ BASE TABLE å…± 413 å¼ ï¼Œå…¨éƒ¨è¾“出 CREATE TABLE;
--       ä»…以下配置类表带数据(INSERT),其余业务/系统/运行历史表只保留空表结构:
--     â‘  ååŒå®¡æ‰¹æµç¨‹ï¼ˆå¼•擎定义,仅激活流程,剔历史/运行/身份):act_ge_property、act_re_procdef、act_re_deployment、act_ge_bytearray、act_re_model、bpm_process_definition_info
--     â‘  ååŒå®¡æ‰¹æµç¨‹ï¼ˆå¼•擎元数据+定义,仅激活流程,剔历史/运行/身份):act_ge_property、act_id_property、act_re_procdef、act_re_deployment、act_ge_bytearray、act_re_model、bpm_process_definition_info
--     â‘¡ ååŒï¼ˆä¸šåŠ¡é™„ä»¶é…ç½® + åˆ†ç±» + è¡¨å• + æ‰©å±•配置):bpm_business_attach、bpm_category、bpm_form、bpm_user_group、bpm_process_listener、bpm_process_expression
--     â‘¢ BI å†³ç­–大屏 / go-view:bi_dashboard、bi_chart_config、bi_data_source_config、bi_warehouse_coordinate、report_go_view_project
--     â‘£ MES ç¼–码规则(剔流水记录):mes_md_auto_code_rule、mes_md_auto_code_part
@@ -23,7 +23,7 @@
-- ***********************************************************************
-- â‘  ååŒå®¡æ‰¹æµç¨‹ï¼ˆå¼•擎定义,仅激活流程,剔历史/运行/身份)(DDL + æ•°æ®ï¼‰
-- â‘  ååŒå®¡æ‰¹æµç¨‹ï¼ˆå¼•擎元数据+定义,仅激活流程,剔历史/运行/身份)(DDL + æ•°æ®ï¼‰
-- ***********************************************************************
-- ============ è¡¨ï¼šact_ge_property(导出 7 è¡Œï¼‰ ============
@@ -42,6 +42,17 @@
('next.dbid', '1', '1'),
('schema.history', 'upgrade(7.2.0.2->8.0.0.0)', '2'),
('schema.version', '8.0.0.0', '2');
-- ============ è¡¨ï¼šact_id_property(导出 1 è¡Œï¼‰ ============
DROP TABLE IF EXISTS `act_id_property`;
CREATE TABLE `act_id_property` (
  `NAME_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
  `VALUE_` varchar(300) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
  `REV_` int DEFAULT NULL,
  PRIMARY KEY (`NAME_`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin ROW_FORMAT=DYNAMIC;
INSERT INTO `act_id_property` (`NAME_`, `VALUE_`, `REV_`) VALUES
('schema.version', '8.0.0.0', '1');
-- ============ è¡¨ï¼šact_re_procdef(导出 20 è¡Œï¼‰ ============
DROP TABLE IF EXISTS `act_re_procdef`;
@@ -2539,7 +2550,7 @@
) ENGINE=InnoDB AUTO_INCREMENT=2880 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='代码生成表字段定义';
-- ***********************************************************************
-- å…¶ä½™ 381 å¼ è¡¨ï¼ˆä»…表结构,无数据)
-- å…¶ä½™ 380 å¼ è¡¨ï¼ˆä»…表结构,无数据)
-- ***********************************************************************
-- ============ è¡¨ï¼šact_evt_log(仅 DDL,无数据) ============
@@ -2889,15 +2900,6 @@
  KEY `ACT_IDX_PRIV_USER` (`USER_ID_`) USING BTREE,
  KEY `ACT_IDX_PRIV_GROUP` (`GROUP_ID_`) USING BTREE,
  CONSTRAINT `ACT_FK_PRIV_MAPPING` FOREIGN KEY (`PRIV_ID_`) REFERENCES `act_id_priv` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin ROW_FORMAT=DYNAMIC;
-- ============ è¡¨ï¼šact_id_property(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `act_id_property`;
CREATE TABLE `act_id_property` (
  `NAME_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
  `VALUE_` varchar(300) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
  `REV_` int DEFAULT NULL,
  PRIMARY KEY (`NAME_`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin ROW_FORMAT=DYNAMIC;
-- ============ è¡¨ï¼šact_id_token(仅 DDL,无数据) ============
@@ -4037,7 +4039,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='流程抄送表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='流程抄送表';
-- ============ è¡¨ï¼šcrm_business(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_business`;
@@ -4066,7 +4068,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å•†æœºè¡¨';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å•†æœºè¡¨';
-- ============ è¡¨ï¼šcrm_business_product(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_business_product`;
@@ -4085,7 +4087,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å•†æœºäº§å“å…³è”表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å•†æœºäº§å“å…³è”表';
-- ============ è¡¨ï¼šcrm_business_status(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_business_status`;
@@ -4146,7 +4148,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM çº¿ç´¢è¡¨';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM çº¿ç´¢è¡¨';
-- ============ è¡¨ï¼šcrm_contact(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_contact`;
@@ -4222,7 +4224,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM åˆåŒè¡¨';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM åˆåŒè¡¨';
-- ============ è¡¨ï¼šcrm_contract_config(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_contract_config`;
@@ -4365,7 +4367,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å¼€ç¥¨';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='CRM å¼€ç¥¨';
-- ============ è¡¨ï¼šcrm_permission(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_permission`;
@@ -4381,7 +4383,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM æ•°æ®æƒé™è¡¨';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='CRM æ•°æ®æƒé™è¡¨';
-- ============ è¡¨ï¼šcrm_receivable(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `crm_receivable`;
@@ -4519,7 +4521,7 @@
  KEY `idx_period` (`period_type`,`period_value`) USING BTREE,
  KEY `idx_dimension` (`target_dimension`,`target_user_id`,`target_dept_id`,`target_item_id`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='CRM é”€å”®ç›®æ ‡';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='CRM é”€å”®ç›®æ ‡';
-- ============ è¡¨ï¼šerp_account(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `erp_account`;
@@ -4643,7 +4645,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='采购来票';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='采购来票';
-- ============ è¡¨ï¼šerp_purchase_order(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `erp_purchase_order`;
@@ -4790,7 +4792,7 @@
  `production_status` tinyint DEFAULT '0' COMMENT '生产状态:0-未完成,1-已完成',
  `production_finish_time` datetime DEFAULT NULL COMMENT '生产完成时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='ERP é”€å”®è®¢å•';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='ERP é”€å”®è®¢å•';
-- ============ è¡¨ï¼šerp_sale_order_items(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `erp_sale_order_items`;
@@ -4814,7 +4816,7 @@
  `need_production` tinyint DEFAULT '0' COMMENT '是否需要生产(0=否 1=是)',
  `mps_id` bigint DEFAULT NULL COMMENT '关联的MPS编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='ERP é”€å”®è®¢å•项';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='ERP é”€å”®è®¢å•项';
-- ============ è¡¨ï¼šerp_supplier(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `erp_supplier`;
@@ -5008,7 +5010,7 @@
  UNIQUE KEY `uk_user_date` (`user_id`,`date`) USING BTREE,
  KEY `idx_dept_date` (`dept_id`,`date`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='HRM考勤打卡记录表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='HRM考勤打卡记录表';
-- ============ è¡¨ï¼šhrm_attendance_rule(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `hrm_attendance_rule`;
@@ -5290,7 +5292,7 @@
  UNIQUE KEY `uk_no` (`no`) USING BTREE,
  KEY `idx_user_status` (`user_id`,`status`) USING BTREE,
  KEY `idx_dept_time` (`dept_id`,`start_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='HRM请假申请表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='HRM请假申请表';
-- ============ è¡¨ï¼šhrm_leave_type_config(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `hrm_leave_type_config`;
@@ -6082,7 +6084,7 @@
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='系统异常日志';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='系统异常日志';
-- ============ è¡¨ï¼šinfra_file(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `infra_file`;
@@ -6678,7 +6680,7 @@
  UNIQUE KEY `uk_check_code` (`check_code`) USING BTREE,
  KEY `idx_metering_id` (`metering_id`) USING BTREE,
  KEY `idx_check_date` (`check_date`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES è®¡é‡æ£€æµ‹è®°å½•';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES è®¡é‡æ£€æµ‹è®°å½•';
-- ============ è¡¨ï¼šmes_dv_repair(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_dv_repair`;
@@ -6757,7 +6759,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç¼–码生成记录';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç¼–码生成记录';
-- ============ è¡¨ï¼šmes_md_item(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_md_item`;
@@ -7166,7 +7168,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES è®¾è®¡é¡¹ç›®';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES è®¾è®¡é¡¹ç›®';
-- ============ è¡¨ï¼šmes_pro_andon_config(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_andon_config`;
@@ -7444,7 +7446,7 @@
  KEY `idx_product_id` (`product_id`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE,
  KEY `idx_merge_batch_no` (`merge_batch_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§ä¸»è®¡åˆ’';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§ä¸»è®¡åˆ’';
-- ============ è¡¨ï¼šmes_pro_mps_merge_item(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_mps_merge_item`;
@@ -7658,7 +7660,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_work_order_process` (`work_order_id`,`process_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§ä»»åŠ¡';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§ä»»åŠ¡';
-- ============ è¡¨ï¼šmes_pro_task_assignee(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_task_assignee`;
@@ -7759,7 +7761,7 @@
  `process_definition_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'BPM æµç¨‹å®šä¹‰ Key',
  `feedback_role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '报工角色 (多个角色以逗号分隔)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§å·¥å•';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§å·¥å•';
-- ============ è¡¨ï¼šmes_pro_work_order_bom(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_work_order_bom`;
@@ -7847,7 +7849,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_work_order_id` (`work_order_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§å·¥å•工序';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”Ÿäº§å·¥å•工序';
-- ============ è¡¨ï¼šmes_pro_work_record(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_work_record`;
@@ -7865,7 +7867,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”¨æˆ·å·¥ä½œç«™ç»‘定关系';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ç”¨æˆ·å·¥ä½œç«™ç»‘定关系';
-- ============ è¡¨ï¼šmes_pro_work_record_log(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_pro_work_record_log`;
@@ -7881,7 +7883,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ä¸Šä¸‹å·¥è®°å½•流水';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ä¸Šä¸‹å·¥è®°å½•流水';
-- ============ è¡¨ï¼šmes_qc_defect(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_defect`;
@@ -7954,7 +7956,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ£€éªŒç»“果记录';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ£€éªŒç»“果记录';
-- ============ è¡¨ï¼šmes_qc_indicator_result_detail(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_indicator_result_detail`;
@@ -7970,7 +7972,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ£€éªŒç»“果明细记录';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ£€éªŒç»“果明细记录';
-- ============ è¡¨ï¼šmes_qc_ipqc(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_ipqc`;
@@ -8074,7 +8076,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ¥æ–™æ£€éªŒå•';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ¥æ–™æ£€éªŒå•';
-- ============ è¡¨ï¼šmes_qc_iqc_line(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_iqc_line`;
@@ -8098,7 +8100,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ¥æ–™æ£€éªŒå•行';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ¥æ–™æ£€éªŒå•行';
-- ============ è¡¨ï¼šmes_qc_ncr(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_ncr`;
@@ -8139,7 +8141,7 @@
  KEY `idx_qc_type_id` (`qc_type`,`qc_id`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE,
  KEY `idx_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ä¸åˆæ ¼å“å¤„理单';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES ä¸åˆæ ¼å“å¤„理单';
-- ============ è¡¨ï¼šmes_qc_oqc(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_oqc`;
@@ -8179,7 +8181,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES å‡ºè´§æ£€éªŒå•';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES å‡ºè´§æ£€éªŒå•';
-- ============ è¡¨ï¼šmes_qc_oqc_line(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_oqc_line`;
@@ -8203,7 +8205,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES å‡ºè´§æ£€éªŒå•行';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES å‡ºè´§æ£€éªŒå•行';
-- ============ è¡¨ï¼šmes_qc_rqc(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_qc_rqc`;
@@ -8479,7 +8481,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ‰¹æ¬¡';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES æ‰¹æ¬¡';
-- ============ è¡¨ï¼šmes_wm_item_consume(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_wm_item_consume`;
@@ -8642,7 +8644,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES åº“存记录';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES åº“存记录';
-- ============ è¡¨ï¼šmes_wm_misc_issue(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_wm_misc_issue`;
@@ -9620,7 +9622,7 @@
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES åº“存事务流水';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES åº“存事务流水';
-- ============ è¡¨ï¼šmes_wm_transfer(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `mes_wm_transfer`;
@@ -10191,7 +10193,7 @@
  UNIQUE KEY `uk_apply_no` (`apply_no`) USING BTREE,
  KEY `idx_supplier_id` (`supplier_id`) USING BTREE,
  KEY `idx_apply_status` (`apply_status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='供应商准入申请表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='供应商准入申请表';
-- ============ è¡¨ï¼šsrm_supplier_category(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `srm_supplier_category`;
@@ -10480,7 +10482,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_username` (`username`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='系统访问记录';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='系统访问记录';
-- ============ è¡¨ï¼šsystem_mail_account(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_mail_account`;
@@ -10658,7 +10660,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_access_token` (`access_token`) USING BTREE,
  KEY `idx_refresh_token` (`refresh_token`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='OAuth2 è®¿é—®ä»¤ç‰Œ';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='OAuth2 è®¿é—®ä»¤ç‰Œ';
-- ============ è¡¨ï¼šsystem_oauth2_approve(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_oauth2_approve`;
@@ -10748,7 +10750,7 @@
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_refresh_token` (`refresh_token`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='OAuth2 åˆ·æ–°ä»¤ç‰Œ';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='OAuth2 åˆ·æ–°ä»¤ç‰Œ';
-- ============ è¡¨ï¼šsystem_operate_log(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_operate_log`;
@@ -10776,7 +10778,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_user_id` (`user_id`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='操作日志记录 V2 ç‰ˆæœ¬';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='操作日志记录 V2 ç‰ˆæœ¬';
-- ============ è¡¨ï¼šsystem_post(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_post`;
@@ -11008,7 +11010,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_record` (`record_type`,`record_id`) USING BTREE,
  KEY `idx_blob_id` (`storage_blob_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='文件关联表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='文件关联表';
-- ============ è¡¨ï¼šsystem_storage_blob(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_storage_blob`;
@@ -11028,7 +11030,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_uid_filename` (`uid_filename`) USING BTREE,
  KEY `idx_resource_key` (`resource_key`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='文件表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='文件表';
-- ============ è¡¨ï¼šsystem_user_post(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `system_user_post`;
@@ -11107,7 +11109,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='示例联系人表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='示例联系人表';
-- ============ è¡¨ï¼šyudao_demo02_category(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `yudao_demo02_category`;
@@ -11122,7 +11124,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='示例分类表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='示例分类表';
-- ============ è¡¨ï¼šyudao_demo03_course(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `yudao_demo03_course`;
@@ -11138,7 +11140,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生课程表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生课程表';
-- ============ è¡¨ï¼šyudao_demo03_grade(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `yudao_demo03_grade`;
@@ -11154,7 +11156,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生班级表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生班级表';
-- ============ è¡¨ï¼šyudao_demo03_student(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `yudao_demo03_student`;
@@ -11171,7 +11173,77 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='学生表';
SET FOREIGN_KEY_CHECKS = 1;
SET SQL_MODE = @OLD_SQL_MODE;
-- =======================================================================
-- é˜¶æ®µäºŒï¼šè¡¥å¯¼èº«ä»½/菜单/OAuth2(原 test_identity_seed_20260904.sql åˆå¹¶äºŽæ­¤ï¼‰
-- =======================================================================
-- =======================================================================
-- æ–‡ä»¶ï¼štest_identity_seed_20260904.sql
-- ç”¨é€”:给 test åº“补齐"身份 + èœå•"最小可登录数据(超管),数据源:ruoyi-vue-pro
-- å‰æï¼štest åº“已执行过 config_export_20260904.sql(全表结构已存在,字典已导);
--       æœ¬è„šæœ¬é¡»åœ¨â€œåŒæ—¶å­˜åœ¨ ruoyi-vue-pro ä¸Ž test”的同一 MySQL å®žä¾‹ä¸Šæ‰§è¡Œã€‚
-- è¦†ç›–:
--   â‘  system_menu        å…¨éƒ¨æœ‰æ•ˆèœå•(超管登录后由代码直接返回全部菜单,故不需要 role_menu è¡Œï¼‰
--   â‘¡ system_dept / post æºåº“未删除的有效部门/岗位行
--   â‘¢ system_role        è¶…管角色 super_admin
--   â‘£ system_users       admin è¶…管账号(密码哈希一并拷贝,登录密码同源库)
--   â‘¤ system_user_role   admin â†’ super_admin å…³è”
--   â‘¥ system_oauth2_client  é»˜è®¤ OAuth2 å®¢æˆ·ç«¯ï¼ˆç™»å½•/刷新令牌必需,client_id='default')
-- å­—å…¸ system_dict_type / system_dict_data:config_export å·²å¯¼å…¥ï¼ˆtest çŽ°ä¸º 241/1157),此处不重复处理。
-- å¹‚等:每张表先 DELETE å† INSERT,可重复执行;不影响其它表。
-- âš  ä»…作用于上述列出的表,不会清空其它表数据。
-- âš  æºåº“ ruoyi-vue-pro çš„ system_dept / system_post å«è¾ƒå¤šè½¯åˆ é™¤è¡Œï¼Œæ­¤å¤„仅拷贝未删除(deleted=0)的。
-- =======================================================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
SET @OLD_SQL_MODE = @@SQL_MODE, SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';
-- â‘  èœå•(全量有效)
DELETE FROM `system_menu`;
INSERT INTO `system_menu`
SELECT * FROM `ruoyi-vue-pro`.`system_menu`
WHERE `deleted` = b'0';
-- â‘ b OAuth2 å®¢æˆ·ç«¯ï¼ˆç™»å½•必需,client_id='default')
DELETE FROM `system_oauth2_client`;
INSERT INTO `system_oauth2_client`
SELECT * FROM `ruoyi-vue-pro`.`system_oauth2_client`
WHERE `deleted` = b'0';
-- â‘¡ éƒ¨é—¨ / å²—位(仅未删除的有效行)
DELETE FROM `system_dept`;
INSERT INTO `system_dept`
SELECT * FROM `ruoyi-vue-pro`.`system_dept`
WHERE `deleted` = b'0';
DELETE FROM `system_post`;
INSERT INTO `system_post`
SELECT * FROM `ruoyi-vue-pro`.`system_post`
WHERE `deleted` = b'0';
-- â‘¢ è¶…管角色(super_admin)
DELETE FROM `system_role`;
INSERT INTO `system_role`
SELECT * FROM `ruoyi-vue-pro`.`system_role`
WHERE `code` = 'super_admin' AND `deleted` = b'0';
-- â‘£ è¶…管账号 admin
DELETE FROM `system_users`;
INSERT INTO `system_users`
SELECT * FROM `ruoyi-vue-pro`.`system_users`
WHERE `username` = 'admin' AND `deleted` = b'0';
-- â‘¤ ç”¨æˆ·-角色关联(admin æ‹¥æœ‰çš„角色)
DELETE FROM `system_user_role`;
INSERT INTO `system_user_role`
SELECT * FROM `ruoyi-vue-pro`.`system_user_role`
WHERE `user_id` = (SELECT `id` FROM `system_users` WHERE `username` = 'admin' LIMIT 1);
SET FOREIGN_KEY_CHECKS = 1;