- Implement 5 core API endpoints (create task, get progress, get results, update decision, export Excel) - Add FulltextScreeningController with Zod validation (652 lines) - Implement ExcelExporter service with 4-sheet report generation (352 lines) - Register routes under /api/v1/asl/fulltext-screening - Create 31 REST Client test cases - Add automated integration test script - Fix PDF extraction fallback mechanism in LLM12FieldsService - Update API design documentation to v3.0 - Update development plan to v1.2 - Create Day 5 development record - Clean up temporary test files
168 lines
4.9 KiB
SQL
168 lines
4.9 KiB
SQL
-- ========================================
|
||
-- 简化版验证脚本
|
||
-- ========================================
|
||
|
||
-- 验证10个Schema是否创建
|
||
DO $$
|
||
DECLARE
|
||
schema_count INTEGER;
|
||
BEGIN
|
||
SELECT COUNT(*) INTO schema_count
|
||
FROM information_schema.schemata
|
||
WHERE schema_name IN (
|
||
'platform_schema', 'aia_schema', 'pkb_schema',
|
||
'asl_schema', 'common_schema', 'dc_schema',
|
||
'rvw_schema', 'admin_schema', 'ssa_schema', 'st_schema'
|
||
);
|
||
|
||
RAISE NOTICE '========================================';
|
||
IF schema_count = 10 THEN
|
||
RAISE NOTICE '✅ 10个Schema全部创建成功';
|
||
ELSE
|
||
RAISE WARNING '⚠️ Schema数量异常: 预期10个,实际%个', schema_count;
|
||
END IF;
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
-- 验证表数量
|
||
DO $$
|
||
DECLARE
|
||
platform_tables INTEGER;
|
||
aia_tables INTEGER;
|
||
pkb_tables INTEGER;
|
||
BEGIN
|
||
SELECT COUNT(*) INTO platform_tables FROM pg_tables WHERE schemaname = 'platform_schema';
|
||
SELECT COUNT(*) INTO aia_tables FROM pg_tables WHERE schemaname = 'aia_schema';
|
||
SELECT COUNT(*) INTO pkb_tables FROM pg_tables WHERE schemaname = 'pkb_schema';
|
||
|
||
RAISE NOTICE '表数量统计:';
|
||
RAISE NOTICE 'platform_schema: % 个表 (预期1个)', platform_tables;
|
||
RAISE NOTICE 'aia_schema: % 个表 (预期5个)', aia_tables;
|
||
RAISE NOTICE 'pkb_schema: % 个表 (预期5个)', pkb_tables;
|
||
|
||
IF platform_tables = 1 AND aia_tables = 5 AND pkb_tables = 5 THEN
|
||
RAISE NOTICE '✅ 所有表创建成功';
|
||
ELSE
|
||
RAISE WARNING '⚠️ 表数量存在异常';
|
||
END IF;
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
-- 验证数据量
|
||
DO $$
|
||
DECLARE
|
||
public_users INTEGER;
|
||
platform_users INTEGER;
|
||
public_projects INTEGER;
|
||
aia_projects INTEGER;
|
||
public_kb INTEGER;
|
||
pkb_kb INTEGER;
|
||
BEGIN
|
||
-- 统计users
|
||
SELECT COUNT(*) INTO public_users FROM public.users;
|
||
SELECT COUNT(*) INTO platform_users FROM platform_schema.users;
|
||
|
||
-- 统计projects
|
||
SELECT COUNT(*) INTO public_projects FROM public.projects;
|
||
SELECT COUNT(*) INTO aia_projects FROM aia_schema.projects;
|
||
|
||
-- 统计knowledge_bases
|
||
SELECT COUNT(*) INTO public_kb FROM public.knowledge_bases;
|
||
SELECT COUNT(*) INTO pkb_kb FROM pkb_schema.knowledge_bases;
|
||
|
||
RAISE NOTICE '数据量对比:';
|
||
RAISE NOTICE 'users: public.% -> platform_schema.%', public_users, platform_users;
|
||
RAISE NOTICE 'projects: public.% -> aia_schema.%', public_projects, aia_projects;
|
||
RAISE NOTICE 'knowledge_bases: public.% -> pkb_schema.%', public_kb, pkb_kb;
|
||
|
||
IF public_users = platform_users AND
|
||
public_projects = aia_projects AND
|
||
public_kb = pkb_kb THEN
|
||
RAISE NOTICE '✅ 数据迁移完整';
|
||
ELSE
|
||
RAISE WARNING '⚠️ 数据量存在差异';
|
||
END IF;
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
-- 验证外键约束
|
||
DO $$
|
||
DECLARE
|
||
fk_count INTEGER;
|
||
BEGIN
|
||
SELECT COUNT(*) INTO fk_count
|
||
FROM information_schema.table_constraints
|
||
WHERE constraint_type = 'FOREIGN KEY'
|
||
AND table_schema IN ('platform_schema', 'aia_schema', 'pkb_schema');
|
||
|
||
RAISE NOTICE '外键约束统计:';
|
||
RAISE NOTICE '外键约束总数:%', fk_count;
|
||
RAISE NOTICE '✅ 外键约束已建立';
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
-- 验证跨Schema引用
|
||
DO $$
|
||
DECLARE
|
||
invalid_aia_projects INTEGER;
|
||
invalid_pkb_kb INTEGER;
|
||
BEGIN
|
||
-- 验证aia_schema.projects
|
||
SELECT COUNT(*) INTO invalid_aia_projects
|
||
FROM aia_schema.projects p
|
||
LEFT JOIN platform_schema.users u ON p.user_id = u.id
|
||
WHERE u.id IS NULL;
|
||
|
||
-- 验证pkb_schema.knowledge_bases
|
||
SELECT COUNT(*) INTO invalid_pkb_kb
|
||
FROM pkb_schema.knowledge_bases kb
|
||
LEFT JOIN platform_schema.users u ON kb.user_id = u.id
|
||
WHERE u.id IS NULL;
|
||
|
||
RAISE NOTICE '跨Schema引用验证:';
|
||
IF invalid_aia_projects = 0 THEN
|
||
RAISE NOTICE '✅ aia_schema.projects外键全部有效';
|
||
ELSE
|
||
RAISE WARNING '⚠️ aia_schema.projects有%条无效user_id', invalid_aia_projects;
|
||
END IF;
|
||
|
||
IF invalid_pkb_kb = 0 THEN
|
||
RAISE NOTICE '✅ pkb_schema.knowledge_bases外键全部有效';
|
||
ELSE
|
||
RAISE WARNING '⚠️ pkb_schema.knowledge_bases有%条无效user_id', invalid_pkb_kb;
|
||
END IF;
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
-- 最终总结
|
||
DO $$
|
||
BEGIN
|
||
RAISE NOTICE '';
|
||
RAISE NOTICE '🎉🎉🎉 Schema迁移验证完成 🎉🎉🎉';
|
||
RAISE NOTICE '';
|
||
RAISE NOTICE '下一步:';
|
||
RAISE NOTICE '1. 更新Prisma配置(schema.prisma)';
|
||
RAISE NOTICE '2. 生成Prisma Client';
|
||
RAISE NOTICE '3. 更新代码以使用新Schema';
|
||
RAISE NOTICE '4. 测试现有功能';
|
||
RAISE NOTICE '';
|
||
RAISE NOTICE '========================================';
|
||
END $$;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|