59 lines
2.1 KiB
PL/PgSQL
59 lines
2.1 KiB
PL/PgSQL
-- =============================================================================
|
||
-- 迁移:移除废弃的 dws_member_recall_index 表及 RLS 视图
|
||
-- 日期: 2026-03-20
|
||
-- 原因: RecallIndexTask 已于 2026-02-13 被 WBI+NCI 替代,但表和视图的 DDL
|
||
-- 在 2026-02-19 schema 重命名(billiards_dws → dws)时残留至今。
|
||
-- 表中无有效数据(ETL 任务已删除),属于孤儿对象。
|
||
-- 影响: 无下游消费者依赖此表数据(后端 recall 维度已改用 v_dws_member_winback_index)
|
||
-- 回滚: 从 git 历史恢复 DDL 定义并重建表和视图
|
||
-- =============================================================================
|
||
|
||
BEGIN;
|
||
|
||
-- 1. 删除 RLS 视图
|
||
DROP VIEW IF EXISTS app.v_dws_member_recall_index;
|
||
|
||
-- 2. 删除索引
|
||
DROP INDEX IF EXISTS dws.idx_dws_recall_display;
|
||
|
||
-- 3. 删除表(CASCADE 会自动清理约束)
|
||
DROP TABLE IF EXISTS dws.dws_member_recall_index CASCADE;
|
||
|
||
-- 4. 删除序列
|
||
DROP SEQUENCE IF EXISTS dws.dws_member_recall_index_recall_id_seq;
|
||
|
||
COMMIT;
|
||
|
||
-- =============================================================================
|
||
-- 验证
|
||
-- =============================================================================
|
||
DO $$
|
||
DECLARE
|
||
tbl_exists BOOLEAN;
|
||
view_exists BOOLEAN;
|
||
seq_exists BOOLEAN;
|
||
BEGIN
|
||
SELECT EXISTS(
|
||
SELECT 1 FROM information_schema.tables
|
||
WHERE table_schema = 'dws' AND table_name = 'dws_member_recall_index'
|
||
) INTO tbl_exists;
|
||
|
||
SELECT EXISTS(
|
||
SELECT 1 FROM information_schema.views
|
||
WHERE table_schema = 'app' AND table_name = 'v_dws_member_recall_index'
|
||
) INTO view_exists;
|
||
|
||
SELECT EXISTS(
|
||
SELECT 1 FROM information_schema.sequences
|
||
WHERE sequence_schema = 'dws' AND sequence_name = 'dws_member_recall_index_recall_id_seq'
|
||
) INTO seq_exists;
|
||
|
||
RAISE NOTICE '表存在: % (应为 false)', tbl_exists;
|
||
RAISE NOTICE '视图存在: % (应为 false)', view_exists;
|
||
RAISE NOTICE '序列存在: % (应为 false)', seq_exists;
|
||
|
||
IF tbl_exists OR view_exists OR seq_exists THEN
|
||
RAISE EXCEPTION '清理不完整,仍有残留对象';
|
||
END IF;
|
||
END $$;
|