-- ===================================================================== -- W0.2 双配置中心合并:product_config 全表备份脚本(含审计日志) -- 计划文档: docs/superpowers/plans/2026-10-24-cf-value-unification-plan.md §3.6.6 步骤1 / §3.7 W0.2 -- 职责: 运维在迁移前对 product_config 全表数据做备份(含与 product_config 相关的审计日志) -- 实际状态: 本仓库基线(origin/cfclub @ f8b145d3a)与测试库(192.168.16.251:3306/zxyj) -- 均不存在 product_config 表/实体(经 information_schema 与全仓 grep 验证), -- 故本脚本在目标环境存在 product_config 时执行,测试库执行为 0 行空跑(幂等)。 -- 执行前提: 在存在 product_config 表的数据库(如生产)中执行。 -- ===================================================================== -- 0) 行数基线(记录迁移前数据量,用于验收对比) SELECT 'product_config' AS tbl, COUNT(*) AS rows_before FROM product_config UNION ALL SELECT 'product_config_audit', COUNT(*) FROM product_config_audit; -- 1) 全表结构备份(DDL 快照),执行后另存为 product_config.ddl.sql SHOW CREATE TABLE product_config; -- 2) 全表数据备份(完整 INSERT 语句,可离线回放),执行后另存为 product_config.data.sql -- 输出到本地文件: mysql -u -p < product_config_backup.sql > product_config.data.sql SELECT CONCAT( 'INSERT INTO product_config (', GROUP_CONCAT(COLUMN_NAME ORDER BY ORDINAL_POSITION), ') VALUES (', GROUP_CONCAT(CONCAT('''', REPLACE(IFNULL(`', COLUMN_NAME, '`,'''')), '''')), ');' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'product_config' GROUP BY TABLE_NAME; -- 3) 结构化导出(CSV,便于对比/导入) -- SELECT * FROM product_config INTO OUTFILE '/tmp/product_config_backup.csv' -- FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'; -- 4) 审计日志备份(若存在 product_config_audit / product_config_log 等审计表) SELECT 'product_config 相关审计表:' UNION ALL SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND (TABLE_NAME LIKE 'product_config%audit%' OR TABLE_NAME LIKE 'product_config%log%'); -- 5) 迁移后对比(由 运维/开发 执行) -- SELECT COUNT(*) FROM product_config; -- 迁移前(应等于 rows_before) -- SELECT COUNT(*) FROM service_config WHERE product_key IS NOT NULL; -- 迁移后并入的行数 -- 两者应相等(product_key 为空兜底为 'default' 的按 1:1 计入) -- ===================================================================== -- 迁移 413 说明(DatabaseInitializer 已实现,幂等): -- ALTER TABLE service_config ADD COLUMN product_key VARCHAR(64); -- product_config → service_config 并入,config_key 加前缀 product.{productKey}. -- product_key 标识规则: product_key → product_code → product_id → group_key → 'default' -- =====================================================================