Files
AIclinicalresearch/docs/04-开发规范/09-数据库开发规范.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

7.7 KiB
Raw Blame History

<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD>𧋦: v1.0 <0A>湔鰵<E6B994><EFBFBD>: 2026-01-11 蝻硋<E89DBB><E7A18B>峕艶: 2026-01-11 <20>唳旿摨㮖<E691A8><E3AE96><EFBFBD><EFBFBD><EFBFBD><EFBFBD>


1. <20><EFBFBD><E8A9A8><EFBFBD>

1.1 摰匧<E691B0>蝚砌<E89D9A>

<EFBFBD>𩤃<EFBFBD><><E69ABA>瘜訫<E7989C>嚗帋遙雿閙㺭<E99699><EFBFBD><E6A180><EFBFBD><E6BBA2><EFBFBD><EFBFBD><EFBFBD><E29786><EFBFBD>隞踝<E99A9E>

1.2 蝳<>迫雿輻鍂<E8BCBB><E98D82><EFBFBD>拙𦶢隞?

<EFBFBD>賭誘 <EFBFBD>梢埯蝑厩漣 霂湔<EFBFBD>
prisma db push --force-reset <EFBFBD>𣞁 <EFBFBD><EFBFBD><EFBFBD> 隡𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇㺭<EFBFBD><EFBFBD><EFBFBD>鱲risma蝞∠<EFBFBD><EFBFBD><EFBFBD>笆鞊?
prisma migrate reset <EFBFBD>𣞁 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>滨蔭<EFBFBD>港葵<EFBFBD>唳旿摨?
DROP DATABASE <EFBFBD>𣞁 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>𣳇膄<EFBFBD>港葵<EFBFBD>唳旿摨?
TRUNCATE TABLE <EFBFBD><EFBFBD> 擃? <EFBFBD>征銵冽㺭<EFBFBD>?

1.3 <20><EFBFBD><E588BB><EFBFBD><EFBFBD><EFBFBD>典𦶢隞?

<EFBFBD>賭誘 <EFBFBD><EFBFBD>? 摰匧<EFBFBD><EFBFBD>?
prisma migrate dev <EFBFBD><EFBFBD>𤑳㴓憓<EFBFBD><EFBFBD>蝘? <EFBFBD>?摰匧<E691B0>
prisma migrate deploy <EFBFBD>煺漣<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>?摰匧<E691B0>
prisma db push (<28>?--force-reset) <EFBFBD>峕郊schema<EFBFBD>唳㺭<EFBFBD><EFBFBD> <EFBFBD>𩤃<EFBFBD> 靚冽<E99D9A>雿輻鍂
prisma generate <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡? <EFBFBD>?摰匧<E691B0>

2. <20>唳旿摨枏<E691A8>隞質<E99A9E><E8B3AA>?

2.1 憭<><EFBFBD>賭誘

# <20><EFBFBD> Docker 憭<>遢嚗<E981A2><EFBFBD><EFBFBD>
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research > backup_$(date +%Y%m%d_%H%M%S).sql

# PowerShell <20><>𧋦
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research > "backup_$timestamp.sql"

2.2 憭<><EFBFBD>嗆㦤

<EFBFBD>嗆㦤 <EFBFBD>臬炏敹<EFBFBD>
<EFBFBD><EFBFBD>隞颱<EFBFBD> prisma migrate <20>? <EFBFBD>?敹<>
<EFBFBD><EFBFBD> prisma db push <20>? <EFBFBD>?敹<>
<EFBFBD>函蔡<EFBFBD><EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD> <EFBFBD>?敹<>
瘥𤩺𠯫<EFBFBD>芸𢆡憭<EFBFBD> <EFBFBD>?<3F><EFBFBD>
<EFBFBD>滚之<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?敹<>

2.3 憭<><EFBFBD><E981A2>辣蝞∠<E89D9E>

AIclinicalresearch/
<0A><EFBFBD><E98EBF><EFBFBD> backup_20260111_131506.sql     # <20><EFBFBD>_<EFBFBD>園𡢿<E59C92><EFBFBD>
<0A><EFBFBD><E98EBF><EFBFBD> rds_init_20251224_154529.sql   # <20><>蟮憭<E89FAE><0A><EFBFBD><E5A999><EFBFBD> ...

3. Schema <20>䀹凒瘚<E58792><E7989A>

3.1 <20><><EFBFBD><EFBFBD><E7989A>

graph TD
    A[靽格㺿 schema.prisma] --> B[憭<><EFBFBD>唳旿摨𨩇
    B --> C[餈鞱<E9A488> prisma migrate dev]
    C --> D{餈<><EFBFBD>𣂼<EFBFBD>?}
    D -->|<7C>砝 E[瘚贝<E7989A><E8B49D><EFBFBD>]
    D -->|<7C>帆 F[隞𤾸<E99A9E>隞賣<E99A9E>憭䓞
    E --> G{瘚贝<E7989A><E8B49D><EFBFBD>?}
    G -->|<7C>砝 H[<5B>𣂷漱隞<E6BCB1><E99A9E>]
    G -->|<7C>帆 F

3.2 <20><EFBFBD>甇仿炊

# 1. 憭<><EFBFBD>唳旿摨?
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research > backup_before_migration.sql

# 2. 靽格㺿 schema.prisma

# 3. <20>𥕦遣餈<E981A3>
npx prisma migrate dev --name describe_your_change

# 4. 璉<><E79289><EFBFBD><E4BAA6><EFBFBD><EFBFBD>宏 SQL
cat prisma/migrations/xxx_describe_your_change/migration.sql

# 5. 瘚贝<E7989A>

# 6. 憒<><E68692>憭梯揖嚗峕<E59A97>憭滚<E686AD>隞?
cat backup_before_migration.sql | docker exec -i ai-clinical-postgres psql -U postgres -d ai_clinical_research

4. Prisma 銝擧㺭<E693A7><EFBFBD>銝滢<E98A9D><E6BBA2>湧䔮憸?

4.1 Prisma 銝滨恣<E6BBA8><E681A3><EFBFBD>撖寡情

隞乩<EFBFBD><EFBFBD>唳旿摨枏笆鞊∩<EFBFBD><EFBFBD>?schema.prisma 銝剖<E98A9D>銋㚁<E98A8B><E39A81><EFBFBD><EFBFBD><E996AC><EFBFBD>祉恣<E7A589><E681A3><EFBFBD>

撖寡情 蝐餃<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>𡁏𧋦
platform_schema.job_common 銵? pg-boss 餈鞱<E9A488><E99EB1><EFBFBD>撱? restore_job_common.sql
platform_schema.create_queue() <EFBFBD>賣㺭 pg-boss <20><EFBFBD><E598A5>? restore_pgboss_functions.sql
platform_schema.delete_queue() <EFBFBD>賣㺭 pg-boss <20><EFBFBD><E598A5>? restore_pgboss_functions.sql

4.2 <20><EFBFBD><EFBCB7>?Prisma 蝞∠<E89D9E><E288A0><EFBFBD>笆鞊?

# 憒<><E68692>霂臬<E99C82>鈭?pg-boss <20><EFBFBD>撖寡情嚗峕<E59A97>銵䕘<E98AB5>
npx prisma db execute --file restore_job_common.sql --schema prisma/schema.prisma
npx prisma db execute --file restore_pgboss_functions.sql --schema prisma/schema.prisma

4.3 璉<><E79289>交㺭<E4BAA4><EFBFBD>銝?Prisma 銝<><E98A9D><EFBFBD>?

# <20><EFBFBD><E4BAA6>唳旿摨㮖葉<E3AE96><E89189><EFBFBD>?
SELECT routine_name FROM information_schema.routines WHERE routine_schema = 'platform_schema';

# <20><EFBFBD><E4BAA6>唳旿摨㮖葉<E3AE96><E89189>
SELECT table_name FROM information_schema.tables WHERE table_schema = 'platform_schema';

# 撖寞<E69296> schema.prisma 摰帋<E691B0>

5. 憭?Schema <20><EFBFBD><EFBFBD><E996AB>

5.1 Schema <20><EFBFBD><EFBFBD><E996AB>

Schema <EFBFBD><EFBFBD>? 蝷箔<EFBFBD>銵?
platform_schema 撟喳蝱<EFBFBD><EFBFBD>霈暹鴌 users, tenants, app_cache
admin_schema 餈鞱𨯫蝞∠<EFBFBD> admin_operation_logs
aia_schema AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD> conversations, messages
asl_schema <EFBFBD><EFBFBD>讃蝑偦<EFBFBD>? screening_projects, literatures
dc_schema <EFBFBD>唳旿皜<EFBFBD><EFBFBD> dc_templates, dc_extraction_tasks
pkb_schema 銝芯犖<EFBFBD><EFBFBD>摨? knowledge_bases, documents
iit_schema IIT憿寧𤌍 projects, audit_logs
rvw_schema 霈箸<EFBFBD><EFBFBD> review_tasks
capability_schema <EFBFBD>𡁶鍂<EFBFBD><EFBFBD> prompt_templates
public <EFBFBD>扳㺭<EFBFBD>?<3F>澆捆 users (<28>?, admin_logs

5.2 銵典𦶢<E585B8><EFBFBD><E6BBA9>?

{schema_name}.{module_prefix}_{entity_name}

蝷箔<E89DB7>嚗?
- dc_schema.dc_templates
- dc_schema.dc_extraction_tasks
- asl_schema.screening_projects

6. 憭㚚睸銝擧㺭<E693A7><EFBFBD><E6A180><EFBFBD>?

6.1 頝?Schema 憭㚚睸

// <20>?甇<>嚗𡁏<E59A97>蝖格<E89D96>摰𡁜<E691B0>蝟?
model ReviewTask {
  userId String @map("user_id")
  user   PublicUser @relation(fields: [userId], references: [id])
  
  @@schema("rvw_schema")
}

model PublicUser {
  id String @id
  reviewTasks ReviewTask[]
  
  @@schema("public")
}

6.2 憭㚚睸<E39A9A><E79DB8><EFBFBD><EFBFBD><E79289>?

<EFBFBD>其蝙<EFBFBD>?prisma db push <20>𠬍<EFBFBD><EFBFBD><E79289><EFBFBD><E4BA99>格糓<E6A0BC>行迤蝖殷<E89D96>

SELECT 
  tc.table_schema, tc.table_name, kcu.column_name,
  ccu.table_schema AS foreign_schema, ccu.table_name AS foreign_table
FROM information_schema.table_constraints AS tc 
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY';

7. 鈭𧢲<E988AD><F0A7A2B2><EFBFBD><EFBFBD><E7989A>

7.1 霂臬<E99C82><E887AC>唳旿<E594B3><EFBFBD>

# 1. <20>𨀣迫摨𠉛鍂
# 2. 隞𤾸<E99A9E>隞賣<E99A9E>憭?
cat backup_xxx.sql | docker exec -i ai-clinical-postgres psql -U postgres -d ai_clinical_research

# 3. 撉諹<E69289><E8ABB9>唳旿
npx tsx verify_system.ts

# 4. <20>滚鍳摨𠉛鍂

7.2 Schema 銝滢<E98A9D><E6BBA2><EFBFBD>憭?

# 1. 璉<><E79289>亙榆撘?
npx tsx compare_schema_db.ts

# 2. <20><EFBFBD>蝻箏仃<E7AE8F><E4BB83>笆鞊?
npx prisma db execute --file restore_xxx.sql --schema prisma/schema.prisma

# 3. 撉諹<E69289>

8. 撘<><E69298>𤑳㴓憓?vs <20>煺漣<E785BA><EFBFBD>

8.1 撘<><E69298>𤑳㴓憓?

  • <EFBFBD>臭誑雿輻鍂 prisma migrate dev
  • <EFBFBD>臭誑雿輻鍂 prisma db push<EFBFBD><EFBFBD>𠬍<EFBFBD>
  • 摰𡁏<EFBFBD><EFBFBD>峕郊<EFBFBD>煺漣<EFBFBD>唳旿摨梶<EFBFBD><EFBFBD>?

8.2 <20>煺漣<E785BA><EFBFBD>

  • **<2A><EFBFBD>**雿輻鍂 prisma migrate deploy
  • <EFBFBD>雿輻鍂隞颱<EFBFBD> --force <20>?--reset <20><>
  • <EFBFBD>䀹凒<EFBFBD><EFBFBD>憿餅<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞?

9. 璉<><E79289><EFBFBD><E4BAA4>?

9.1 <20>唳旿摨枏<E691A8><E69E8F><EFBFBD><EFBFBD><E79289>?

  • 撌脣<EFBFBD>隞賣㺭<EFBFBD><EFBFBD>
  • 撌脣恣<EFBFBD>?schema.prisma <20>䀹凒
  • 撌脫<EFBFBD><EFBFBD>交糓<EFBFBD>血蔣<EFBFBD><EFBFBD> Prisma 蝞∠<E89D9E><E288A0><EFBFBD>笆鞊?
  • 撌脣<EFBFBD><EFBFBD><EFBFBD>皛𡁏䲮獢?
  • 撌脣銁撘<EFBFBD><EFBFBD>𤑳㴓憓<EFBFBD><EFBFBD>霂?

9.2 <20>函蔡<E587BD><EFBFBD><E693A7>?

  • 摨𠉛鍂甇<EFBFBD><EFBFBD>臬𢆡
  • <EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>交迤撣?
  • pg-boss <20><EFBFBD><EFBFBD>虜撌乩<E6928C>
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘚贝<EFBFBD><EFBFBD><EFBFBD>

10. 撣貊鍂<E8B28A>𡁏𧋦

10.1 撉諹<E69289><E8ABB9>𡁏𧋦雿滨蔭

backend/
<0A><EFBFBD><E98EBF><EFBFBD> verify_system.ts           # 蝟餌<E89D9F>摰峕㟲<E5B395><EFBFBD>霂?
<0A><EFBFBD><E98EBF><EFBFBD> compare_schema_db.ts       # Schema銝擧㺭<E693A7><EFBFBD>撖寞<E69296>
<0A><EFBFBD><E98EBF><EFBFBD> check_iit_asl_data.ts      # 璉<><E79289>交芋<E4BAA4>埈㺭<E59F88>?
<0A><EFBFBD><E98EBF><EFBFBD> restore_job_common.sql     # <20><EFBFBD> job_common 銵?
<0A><EFBFBD><E5A999><EFBFBD> restore_pgboss_functions.sql # <20><EFBFBD> pg-boss <20>賣㺭

10.2 敹恍<E695B9><EFBFBD><EFBFBD>𦶢隞?

# 霈曄蔭<E69B84><EFBFBD><E887AC><EFBFBD>
$env:DATABASE_URL="postgresql://postgres:postgres123@localhost:5432/ai_clinical_research"

# 撉諹<E69289>蝟餌<E89D9F>
npx tsx verify_system.ts

# 璉<><E79289>交㺭<E4BAA4>?
npx tsx check_iit_asl_data.ts

<EFBFBD><EFBFBD><EFBFBD>嚗帋<EFBFBD><EFBFBD><EFBFBD><EFBFBD>靘?

<EFBFBD><EFBFBD>1嚗?026-01-11 <20>唳旿摨㯄<E691A8>蝵桐<E89DB5><E6A190>?

**<2A><EFBFBD>**嚗帋蝙<E5B88B>?prisma db push --force-reset 撖潸稲<E6BDB8>?Prisma 蝞∠<E89D9E><E288A0><EFBFBD>笆鞊∩腺憭?

**敶勗<E695B6>**嚗?

  • pg-boss <20>賣㺭銝仃嚗屸<E59A97><E5B1B8><EFBFBD>瘜閙釣<E99699>?
  • job_common 銵其腺憭?
  • <EFBFBD><EFBFBD><EFBFBD>唳旿銝仃嚗<EFBFBD><EFBFBD><EFBFBD> seed <20><EFBFBD>嚗?

<EFBFBD>躰悌嚗?

  1. 瘞貉<EFBFBD>銝滩<EFBFBD>雿輻鍂 --force-reset
  2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>憿餃<EFBFBD>隞?
  3. <EFBFBD>圾 Prisma <20><><EFBFBD><E681A3><EFBFBD>?

霂西<EFBFBD>嚗䫤docs/08-憿寧𤌍蝞∠<E89D9E>/2026-01-11-<2D>唳旿摨㮖<E691A8><E3AE96><EFBFBD><EFBFBD><EFBFBD>.md`