hyapp-server/services/activity-service/deploy/mysql/migrations/014_activity_region_scoping.sql
2026-07-22 21:43:11 +08:00

52 lines
3.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
USE hyapp_activity;
-- 所有新增列都使用 INSTANT 元数据变更,不扫描或重写高频事件/进度表。历史全局配置回填 0 后继续作为
-- 全区域默认配置,具体区域配置存在时由业务查询优先命中具体区域。
ALTER TABLE room_turnover_reward_configs
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '配置区域 ID0 表示全区域默认配置', ALGORITHM=INSTANT;
ALTER TABLE room_turnover_reward_tiers
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '配置区域 ID0 表示全区域默认配置', ALGORITHM=INSTANT;
ALTER TABLE room_turnover_reward_event_consumption
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '事件发生时房间区域 ID', ALGORITHM=INSTANT;
ALTER TABLE room_turnover_reward_progress
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '事件发生时房间区域 ID', ALGORITHM=INSTANT;
ALTER TABLE room_turnover_reward_settlements
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '结算对应房间区域 ID', ALGORITHM=INSTANT;
ALTER TABLE agency_opening_cycles
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '配置区域 ID0 表示全区域默认活动', ALGORITHM=INSTANT;
ALTER TABLE agency_opening_applications
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '申请时代理区域 ID', ALGORITHM=INSTANT;
ALTER TABLE agency_opening_score_events
ADD COLUMN region_id BIGINT NOT NULL DEFAULT 0 COMMENT '事件发生时房间区域 ID', ALGORITHM=INSTANT;
-- 业务唯一键必须携带 region_id保证同一 App 的不同区域可独立配置和结算。
-- 这些索引变更需要扫描索引记录,但使用 INPLACE + LOCK=NONE部署前仍应按线上表体量确认 DDL 时长和磁盘余量。
ALTER TABLE room_turnover_reward_configs
DROP PRIMARY KEY,
ADD PRIMARY KEY (app_code, region_id),
ALGORITHM=INPLACE, LOCK=NONE;
ALTER TABLE room_turnover_reward_tiers
DROP INDEX uk_room_turnover_reward_tier_code,
DROP INDEX idx_room_turnover_reward_tiers_match,
ADD UNIQUE KEY uk_room_turnover_reward_tier_code (app_code, region_id, tier_code),
ADD KEY idx_room_turnover_reward_tiers_match (app_code, region_id, status, threshold_coin_spent),
ALGORITHM=INPLACE, LOCK=NONE;
ALTER TABLE room_turnover_reward_progress
DROP PRIMARY KEY,
ADD PRIMARY KEY (app_code, region_id, room_id, period_start_ms),
ALGORITHM=INPLACE, LOCK=NONE;
ALTER TABLE room_turnover_reward_settlements
DROP INDEX uk_room_turnover_reward_settlement_room_period,
ADD UNIQUE KEY uk_room_turnover_reward_settlement_room_period (app_code, region_id, room_id, period_start_ms),
ADD KEY idx_room_turnover_reward_settlement_region (app_code, region_id, period_start_ms, created_at_ms),
ALGORITHM=INPLACE, LOCK=NONE;
ALTER TABLE agency_opening_cycles
DROP INDEX idx_agency_opening_cycle_current,
ADD KEY idx_agency_opening_cycle_current (app_code, region_id, activity_code, status, start_ms, end_ms),
ALGORITHM=INPLACE, LOCK=NONE;
ALTER TABLE agency_opening_applications
ADD KEY idx_agency_opening_application_region (app_code, region_id, updated_at_ms, application_id),
ALGORITHM=INPLACE, LOCK=NONE;