119 lines
3.0 KiB
SQL
119 lines
3.0 KiB
SQL
-- ============================================================================
|
|
-- Rule Domain Tenant Phase 1 Precheck
|
|
-- 目标:
|
|
-- 1. 执行前确认规则域现状
|
|
-- 2. 识别历史全局规则资产规模
|
|
-- 3. 识别运行结果快照回填影响范围
|
|
-- ============================================================================
|
|
|
|
-- 1. 核心表是否存在
|
|
SELECT table_name
|
|
FROM information_schema.tables
|
|
WHERE table_schema = current_schema()
|
|
AND table_name IN (
|
|
'leaudit_rule_sets',
|
|
'leaudit_rule_versions',
|
|
'leaudit_rule_group_bindings',
|
|
'leaudit_rule_type_bindings',
|
|
'leaudit_audit_runs',
|
|
'leaudit_rule_results',
|
|
'leaudit_run_errors',
|
|
'leaudit_run_metrics'
|
|
)
|
|
ORDER BY table_name;
|
|
|
|
-- 2. 当前列缺失情况
|
|
SELECT
|
|
table_name,
|
|
column_name
|
|
FROM information_schema.columns
|
|
WHERE table_schema = current_schema()
|
|
AND table_name IN (
|
|
'leaudit_rule_sets',
|
|
'leaudit_rule_versions',
|
|
'leaudit_rule_group_bindings',
|
|
'leaudit_rule_type_bindings',
|
|
'leaudit_audit_runs',
|
|
'leaudit_rule_results',
|
|
'leaudit_run_errors',
|
|
'leaudit_run_metrics'
|
|
)
|
|
AND column_name IN (
|
|
'tenant_code',
|
|
'scope_type',
|
|
'tenant_code_snapshot',
|
|
'scope_type_snapshot',
|
|
'source_rule_set_id',
|
|
'source_version_id',
|
|
'tenant_name_snapshot',
|
|
'group_id_snapshot',
|
|
'rule_binding_id_snapshot'
|
|
)
|
|
ORDER BY table_name, column_name;
|
|
|
|
-- 3. 规则集与规则版本规模
|
|
SELECT 'leaudit_rule_sets' AS table_name, COUNT(*) AS total
|
|
FROM leaudit_rule_sets
|
|
WHERE deleted_at IS NULL
|
|
UNION ALL
|
|
SELECT 'leaudit_rule_versions' AS table_name, COUNT(*) AS total
|
|
FROM leaudit_rule_versions
|
|
UNION ALL
|
|
SELECT 'leaudit_rule_group_bindings' AS table_name, COUNT(*) AS total
|
|
FROM leaudit_rule_group_bindings
|
|
WHERE deleted_at IS NULL;
|
|
|
|
-- 4. 历史全局规则资产规模
|
|
SELECT
|
|
COUNT(*) AS global_rule_sets_without_tenant_code
|
|
FROM leaudit_rule_sets
|
|
WHERE deleted_at IS NULL
|
|
AND (
|
|
tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = ''
|
|
);
|
|
|
|
SELECT
|
|
COUNT(*) AS global_group_bindings_without_tenant_code
|
|
FROM leaudit_rule_group_bindings
|
|
WHERE deleted_at IS NULL
|
|
AND (
|
|
tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = ''
|
|
);
|
|
|
|
-- 5. 运行主表与结果表快照缺口
|
|
SELECT
|
|
COUNT(*) AS audit_runs_missing_tenant_code
|
|
FROM leaudit_audit_runs
|
|
WHERE tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = '';
|
|
|
|
SELECT
|
|
COUNT(*) AS rule_results_missing_tenant_code
|
|
FROM leaudit_rule_results
|
|
WHERE tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = '';
|
|
|
|
SELECT
|
|
COUNT(*) AS run_errors_missing_tenant_code
|
|
FROM leaudit_run_errors
|
|
WHERE tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = '';
|
|
|
|
SELECT
|
|
COUNT(*) AS run_metrics_missing_tenant_code
|
|
FROM leaudit_run_metrics
|
|
WHERE tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = '';
|
|
|
|
-- 6. 文档租户缺口,会直接影响 audit_runs 回填质量
|
|
SELECT
|
|
COUNT(*) AS documents_missing_tenant_code
|
|
FROM leaudit_documents
|
|
WHERE deleted_at IS NULL
|
|
AND (
|
|
tenant_code IS NULL
|
|
OR BTRIM(tenant_code) = ''
|
|
);
|