fix: map archive index metadata columns

This commit is contained in:
hy001 2026-07-18 19:38:00 +08:00
parent d52263da52
commit b3f5b570ca
2 changed files with 14 additions and 2 deletions

View File

@ -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'

View File

@ -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'