From b3f5b570ca8b0c7dc65f830bd5dd63a5ee6743b7 Mon Sep 17 00:00:00 2001 From: hy001 Date: Sat, 18 Jul 2026 19:38:00 +0800 Subject: [PATCH] fix: map archive index metadata columns --- internal/service/gameking/archive_safety.go | 8 +++++++- internal/service/taskcenter/archive_gc_control.go | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/service/gameking/archive_safety.go b/internal/service/gameking/archive_safety.go index 045042e..739b1bd 100644 --- a/internal/service/gameking/archive_safety.go +++ b/internal/service/gameking/archive_safety.go @@ -33,7 +33,13 @@ func ensureActivityEnableSafetyTx(tx *gorm.DB) error { func requireBackfillIndexOnDB(db *gorm.DB) error { var columns []backfillIndexColumn if err := db.Raw(` -SELECT COLUMN_NAME, SEQ_IN_INDEX, SUB_PART, INDEX_TYPE, IS_VISIBLE +-- 与任务中心 GC 门禁保持相同映射规则;不加别名时 MySQL 的大写列标签不会填充 +-- 显式小写 GORM tag,导致真实存在的 Game King 索引也被误判为缺失。 +SELECT COLUMN_NAME AS column_name, + SEQ_IN_INDEX AS seq_in_index, + SUB_PART AS sub_part, + INDEX_TYPE AS index_type, + IS_VISIBLE AS is_visible FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'task_center_event_archive_outbox' diff --git a/internal/service/taskcenter/archive_gc_control.go b/internal/service/taskcenter/archive_gc_control.go index 0430515..703fd17 100644 --- a/internal/service/taskcenter/archive_gc_control.go +++ b/internal/service/taskcenter/archive_gc_control.go @@ -198,7 +198,13 @@ func (s *Service) requireArchiveGCClaimIndex(ctx context.Context) error { } var columns []indexColumn if err := s.db.WithContext(ctx).Raw(` -SELECT COLUMN_NAME, SEQ_IN_INDEX, SUB_PART, INDEX_TYPE, IS_VISIBLE +-- MySQL 会把 information_schema 列标签原样返回为大写;显式使用与 GORM tag +-- 一致的小写别名,避免查询有三行但结构体字段全为零值而误判索引缺失。 +SELECT COLUMN_NAME AS column_name, + SEQ_IN_INDEX AS seq_in_index, + SUB_PART AS sub_part, + INDEX_TYPE AS index_type, + IS_VISIBLE AS is_visible FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'task_center_event_archive_outbox'