Files
Neo-ZQYY/db/scripts/migrate_test_data.sql

107 lines
4.7 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.
-- =============================================================================
-- 从 LLZQ-test 迁移测试数据到新结构
-- 源数据库LLZQ-test旧测试库包含 billiards_ods/billiards_dwd/billiards_dws/etl_admin
-- 目标数据库test_etl_feiqiu新六层 schema+ test_zqyy_app业务应用库
--
-- 前置条件:
-- 1. 已执行 db/etl_feiqiu/scripts/create_test_db.sql 创建 test_etl_feiqiu
-- 2. 已执行 db/zqyy_app/scripts/create_test_db.sql 创建 test_zqyy_app
-- 3. 当前用户对 LLZQ-test 有 SELECT 权限,对目标库有 INSERT 权限
--
-- 执行方式:
-- psql -h <host> -U <user> -f migrate_test_data.sql
--
-- 注意:需要根据实际表映射关系调整,以下为参考模板
-- =============================================================================
-- ---------------------------------------------------------------------------
-- 第一部分etl_admin → meta调度/游标/运行记录)
-- ---------------------------------------------------------------------------
-- 迁移运行记录
INSERT INTO test_etl_feiqiu.meta.etl_run_log
SELECT * FROM dblink(
'dbname=LLZQ-test',
'SELECT * FROM etl_admin.etl_run_log'
) AS t(
-- 根据 meta.sql 中 etl_run_log 的实际列定义填充
-- 示例run_id bigint, task_code text, started_at timestamptz, ...
);
-- 迁移游标状态
INSERT INTO test_etl_feiqiu.meta.etl_cursor_state
SELECT * FROM dblink(
'dbname=LLZQ-test',
'SELECT * FROM etl_admin.etl_cursor_state'
) AS t(
-- 根据 meta.sql 中 etl_cursor_state 的实际列定义填充
);
-- ---------------------------------------------------------------------------
-- 第二部分billiards_ods → odsODS 原始数据)
-- schema 名从 billiards_ods 改为 ods表结构不变
-- ---------------------------------------------------------------------------
-- 会员档案
INSERT INTO test_etl_feiqiu.ods.member_profiles
SELECT * FROM dblink(
'dbname=LLZQ-test',
'SELECT * FROM billiards_ods.member_profiles'
) AS t(
-- 根据 ods.sql 中 member_profiles 的实际列定义填充
);
-- 会员余额变动
INSERT INTO test_etl_feiqiu.ods.member_balance_changes
SELECT * FROM dblink(
'dbname=LLZQ-test',
'SELECT * FROM billiards_ods.member_balance_changes'
) AS t(
-- 根据 ods.sql 中 member_balance_changes 的实际列定义填充
);
-- ... 对 ods schema 中的每张表重复上述模式 ...
-- 完整表清单参见 db/etl_feiqiu/schemas/ods.sql 中的 CREATE TABLE 语句
-- ---------------------------------------------------------------------------
-- 第三部分billiards_dwd → dwdDWD 明细数据)
-- schema 名从 billiards_dwd 改为 dwd保留 main+EX 拆分
-- ---------------------------------------------------------------------------
-- ... 对 dwd schema 中的每张表执行类似迁移 ...
-- 完整表清单参见 db/etl_feiqiu/schemas/dwd.sql 中的 CREATE TABLE 语句
-- ---------------------------------------------------------------------------
-- 第四部分billiards_dws → dwsDWS 汇总数据)
-- schema 名从 billiards_dws 改为 dws表结构不变
-- ---------------------------------------------------------------------------
-- ... 对 dws schema 中的每张表执行类似迁移 ...
-- 完整表清单参见 db/etl_feiqiu/schemas/dws.sql 中的 CREATE TABLE 语句
-- ---------------------------------------------------------------------------
-- 第五部分core schema新增层无历史数据可迁移
-- core 层为新增的统一最小字段集层,需从 dwd 数据重新生成
-- ---------------------------------------------------------------------------
-- 如需填充 core 层测试数据,可从已迁移的 dwd 数据中提取:
-- INSERT INTO test_etl_feiqiu.core.dim_member (member_id, name, mobile, status, site_id)
-- SELECT member_id, name, mobile, status, site_id
-- FROM test_etl_feiqiu.dwd.dim_member_main;
-- ---------------------------------------------------------------------------
-- 第六部分app schema视图层无需迁移数据
-- app 层仅包含视图和 RLS 策略,数据来自底层 schema
-- ---------------------------------------------------------------------------
-- 无需数据迁移,视图会自动引用底层表数据
-- ---------------------------------------------------------------------------
-- 迁移完成后验证
-- ---------------------------------------------------------------------------
-- 验证各 schema 表行数是否与源库一致
-- SELECT schemaname, relname, n_live_tup
-- FROM pg_stat_user_tables
-- WHERE schemaname IN ('meta', 'ods', 'dwd', 'dws', 'core')
-- ORDER BY schemaname, relname;