Files
AIclinicalresearch/backend/check_db_data.ts
HaHafeng dfc0fe0b9a feat(pkb): Integrate pgvector and create Dify replacement plan
Summary:
- Migrate PostgreSQL to pgvector/pgvector:pg15 Docker image
- Successfully install and verify pgvector 0.8.1 extension
- Create comprehensive Dify-to-pgvector migration plan
- Update PKB module documentation with pgvector status
- Update system documentation with pgvector integration

Key changes:
- docker-compose.yml: Switch to pgvector/pgvector:pg15 image
- Add EkbDocument and EkbChunk data model design
- Design R-C-R-G hybrid retrieval architecture
- Add clinical data JSONB fields (pico, studyDesign, regimen, safety, criteria, endpoints)
- Create detailed 10-day implementation roadmap

Documentation updates:
- PKB module status: pgvector RAG infrastructure ready
- System status: pgvector 0.8.1 integrated
- New: Dify replacement development plan (01-Dify替换为pgvector开发计划.md)
- New: Enterprise medical knowledge base solution V2

Tested: PostgreSQL with pgvector verified, frontend and backend functionality confirmed
2026-01-20 00:00:58 +08:00

56 lines
2.1 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('\n=== 各模块数据量检查 ===\n');
// 检查各个模块的数据
const queries = [
{ name: 'aia_schema.projects', sql: 'SELECT COUNT(*) as count FROM aia_schema.projects' },
{ name: 'aia_schema.conversations', sql: 'SELECT COUNT(*) as count FROM aia_schema.conversations' },
{ name: 'asl_schema.screening_projects', sql: 'SELECT COUNT(*) as count FROM asl_schema.screening_projects' },
{ name: 'asl_schema.literatures', sql: 'SELECT COUNT(*) as count FROM asl_schema.literatures' },
{ name: 'dc_schema.dc_templates', sql: 'SELECT COUNT(*) as count FROM dc_schema.dc_templates' },
{ name: 'dc_schema.dc_extraction_tasks', sql: 'SELECT COUNT(*) as count FROM dc_schema.dc_extraction_tasks' },
{ name: 'iit_schema.projects', sql: 'SELECT COUNT(*) as count FROM iit_schema.projects' },
{ name: 'pkb_schema.knowledge_bases', sql: 'SELECT COUNT(*) as count FROM pkb_schema.knowledge_bases' },
{ name: 'pkb_schema.documents', sql: 'SELECT COUNT(*) as count FROM pkb_schema.documents' },
{ name: 'platform_schema.users', sql: 'SELECT COUNT(*) as count FROM platform_schema.users' },
{ name: 'platform_schema.tenants', sql: 'SELECT COUNT(*) as count FROM platform_schema.tenants' },
{ name: 'platform_schema.departments', sql: 'SELECT COUNT(*) as count FROM platform_schema.departments' },
{ name: 'capability_schema.prompt_templates', sql: 'SELECT COUNT(*) as count FROM capability_schema.prompt_templates' },
];
for (const q of queries) {
try {
const result: any = await prisma.$queryRawUnsafe(q.sql);
console.log(`${q.name}: ${result[0].count} 条记录`);
} catch (e: any) {
console.log(`${q.name}: 查询失败 - ${e.message}`);
}
}
// 检查 platform_schema.users 的具体数据
console.log('\n=== platform_schema.users 详情 ===');
const users = await prisma.$queryRaw`SELECT id, name, phone, role, tenant_id FROM platform_schema.users;`;
console.log(users);
}
main()
.catch(console.error)
.finally(() => prisma.$disconnect());