Files
jcgl-dev/dev/sql/apt_rev01/08_seed_replayable.sql
zfjia 8ffeb59dd4
IT-0 verify / verify (push) Canceled after 0s
第一阶段任务,相关数据库定义。
2026-11-10 14:52:54 +08:00

45 lines
2.3 KiB
SQL

-- =============================================================================
-- 可重放回填种子(DDL 与回填分离;CR-02 表 3-33 / 表 13-10 验收③)
-- 所有 INSERT 均为「不存在才插入」,重复执行不产生重复数据。
-- 执行前可用以下方式覆盖公寓标识(需与环境变量 APT_GY_ID 保持一致):
-- mysql ... -e "SET @apt_gyid='YOUR_GYID'; SOURCE 08_seed_replayable.sql"
-- =============================================================================
SET @apt_gyid := COALESCE(NULLIF(@apt_gyid, ''), 'APT-REV01-001');
-- 主数据版本基线:Mock 阶段显式标 LOCAL、source_version=0
INSERT INTO apt_master_version (gyid, domain, source_version, source, state, applied_at, remark)
SELECT @apt_gyid, d.domain_name, 0, 'LOCAL', 'APPLIED', NOW(3), 'IT-0 基线种子(非平台下发)'
FROM (
SELECT 'APARTMENT' AS domain_name UNION ALL SELECT 'ROOM' UNION ALL SELECT 'PERSON'
UNION ALL SELECT 'ROUTE' UNION ALL SELECT 'RULE' UNION ALL SELECT 'HOLIDAY'
) d
WHERE NOT EXISTS (
SELECT 1 FROM apt_master_version v WHERE v.gyid = @apt_gyid AND v.domain = d.domain_name
);
-- 上报水位初始行
INSERT INTO apt_report_watermark (gyid, current_watermark, acked_watermark)
SELECT @apt_gyid, 0, 0
WHERE NOT EXISTS (SELECT 1 FROM apt_report_watermark w WHERE w.gyid = @apt_gyid);
-- 12 项自检项定义(只登记检查项,结果由 IT-7 落库;本轮不写业务结果)
INSERT INTO apt_ops_selfcheck (gyid, check_id, check_item, result, call_ready, checked_at)
SELECT @apt_gyid, c.check_id, c.check_item, 'UNKNOWN', 0, NOW(3)
FROM (
SELECT 'IT0-01' AS check_id, 'DB_CONNECT' AS check_item UNION ALL
SELECT 'IT0-02', 'DB_READ_WRITE' UNION ALL
SELECT 'IT0-03', 'REDIS_CONNECT' UNION ALL
SELECT 'IT0-04', 'REDIS_DB_INDEX' UNION ALL
SELECT 'IT0-05', 'REDIS_READ_WRITE' UNION ALL
SELECT 'IT0-06', 'DDL_TABLE_COUNT' UNION ALL
SELECT 'IT0-07', 'DDL_PK_UK_IDX' UNION ALL
SELECT 'IT0-08', 'GYID_ISOLATION' UNION ALL
SELECT 'IT0-09', 'CREDENTIAL_SCAN' UNION ALL
SELECT 'IT0-10', 'QUARTZ_STORE' UNION ALL
SELECT 'IT0-11', 'AMI_REACHABLE' UNION ALL
SELECT 'IT0-12', 'CALL_READY'
) c
WHERE NOT EXISTS (
SELECT 1 FROM apt_ops_selfcheck s WHERE s.gyid = @apt_gyid AND s.check_id = c.check_id
);