ODC结构对比提供的变更脚本,总是要重建索引

我使用的是桌面版ODC
版本号:4.4.1-1764837403000
Server: 4.4.1-20251210
Release Date: 2025-12-10

比对两个mysql的表结构,明明完全一样的,但给出的比对结果还是“修改”,并且给的结构同步语句是重建索引,我并不需要这个,有能配置的地方么。或者这是个bug?

/*
ALTER TABLE `otp_trade_db`.`trade_order_refund_apply` DROP INDEX `idx_member_id`;
*/

CREATE  INDEX `idx_member_id` USING BTREE ON `otp_trade_db`.`trade_order_refund_apply` (`member_id`);

麻烦提供一下表结构。是原生 mysql 还是 obmysql?

1 个赞

两个 原生mysql 间的结构对比,不止该表 很多表都是这样

CREATE TABLE `decorate_template_resource` (
  `id` varchar(32) NOT NULL COMMENT '主键id',
  `template_id` varchar(32) DEFAULT NULL COMMENT '装修页id',
  `decorate_type` tinyint(4) DEFAULT '0' COMMENT '装修类型:0-装修页 1-模版',
  `component_object_id` varchar(64) DEFAULT NULL COMMENT '组件实例id',
  `component_type` varchar(100) DEFAULT NULL COMMENT '组件类型',
  `resource_id` varchar(100) DEFAULT NULL COMMENT '资源id',
  `resource_name` varchar(200) DEFAULT NULL COMMENT '资源名称',
  `price` decimal(32,2) DEFAULT NULL COMMENT '价格',
  `resource_type` tinyint(4) DEFAULT '0' COMMENT '资源类型:0-商品id',
  `sort` int(11) DEFAULT '0' COMMENT '顺序排序',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_valid` tinyint(4) DEFAULT '1' COMMENT '是否有效:1-有效;0-无效',
  PRIMARY KEY (`id`),
  KEY `idx_resource_id` (`resource_id`),
  KEY `idx_component_template_id` (`component_object_id`,`template_id`),
  KEY `idx_template_resource_id` (`template_id`,`is_valid`,`resource_id`,`resource_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='装修资源表'

对比后提供的变更脚本

/*
ALTER TABLE `wxmall_db`.`decorate_template_resource` DROP INDEX `idx_resource_id`;
*/

CREATE  INDEX `idx_resource_id` USING BTREE ON `wxmall_db`.`decorate_template_resource` (`resource_id`);
/*
ALTER TABLE `wxmall_db`.`decorate_template_resource` DROP INDEX `idx_component_template_id`;
*/

CREATE  INDEX `idx_component_template_id` USING BTREE ON `wxmall_db`.`decorate_template_resource` (`component_object_id`, `template_id`);
/*
ALTER TABLE `wxmall_db`.`decorate_template_resource` DROP INDEX `idx_template_resource_id`;
*/

CREATE  INDEX `idx_template_resource_id` USING BTREE ON `wxmall_db`.`decorate_template_resource` (`template_id`, `is_valid`, `resource_id`, `resource_type`);

mysql
源端版本:5.7.24-log
目标版本:5.7.33-log