Files
AIclinicalresearch/docs/09-架构实施/migration-scripts
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
..

Schema餈<EFBFBD><EFBFBD>𡁏𧋦雿輻鍂<EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>𧋦嚗? V1.0
*<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗? 2025-11-09
*<EFBFBD><EFBFBD><EFBFBD>嚗? 隞簵ublic schema餈<61><EFBFBD>?0銝芷<E98A9D>蝳艋chema


<EFBFBD><EFBFBD> <20>𡁏𧋦皜<F0A78BA6><E79A9C>

# <EFBFBD>𡁏𧋦<EFBFBD>滨妍 霂湔<EFBFBD> <EFBFBD><EFBFBD>園𡢿 <EFBFBD>滨蔭靘肽<EFBFBD>
1 001-create-all-10-schemas.sql <EFBFBD>𥕦遣10銝杵chema嚗?霂衣<E99C82>+7蝛綽<E89D9B> 5蝘? <EFBFBD>?
2 002-migrate-platform.sql <EFBFBD>宏platform_schema嚗?銝芾”嚗鮁sers嚗? 15<EFBFBD><EFBFBD><EFBFBD> 001
3 003-migrate-aia.sql <EFBFBD>宏aia_schema嚗?銝芾”嚗𡁜笆霂萘㮾<E89098><EFBFBD> 30<EFBFBD><EFBFBD><EFBFBD> 001, 002
4 004-migrate-pkb.sql <EFBFBD>宏pkb_schema嚗?銝芾”嚗𡁶䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD>嚗? 30<EFBFBD><EFBFBD><EFBFBD> 001, 002
5 005-validate-all.sql <EFBFBD><EFBFBD>撉諹<EFBFBD><EFBFBD>峕㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? 10<EFBFBD><EFBFBD><EFBFBD> 001-004

*<EFBFBD>餉恣嚗? 蝥?.5撠𤩺𧒄


<EFBFBD><EFBFBD> <20><EFBFBD>甇仿炊

<EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD>

  1. *<EFBFBD><EFBFBD>唳旿摨橒<EFBFBD>撘箇<EFBFBD>撱箄悅嚗?

    pg_dump -U postgres -d your_database > backup_$(date +%Y%m%d_%H%M%S).sql
    
  2. *蝖株恕<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>?

    # 蝖桐<E89D96>DATABASE_URL<52><EFBFBD><E887AC><EFBFBD><EFBFBD>
    echo $DATABASE_URL
    # <20>𡝗䰻<F0A19D97>?.env <20><>
    
  3. *蝖株恕敶枏<EFBFBD>銵函<EFBFBD><EFBFBD>?

    SELECT tablename FROM pg_tables WHERE schemaname = 'public';
    

<EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>1嚗帋蝙<EFBFBD>私sql<EFBFBD>賭誘嚗<EFBFBD><EFBFBD><EFBFBD>

# 餈𥕦<E9A488><F0A595A6>𡁏𧋦<F0A1818F><EFBFBD>
cd AIclinicalresearch/docs/09-<2D><EFBFBD>摰墧鴌/migration-scripts

# 靘脲活<E884B2><EFBFBD><E689AF>𡁏𧋦
psql $DATABASE_URL -f 001-create-all-10-schemas.sql
psql $DATABASE_URL -f 002-migrate-platform.sql
psql $DATABASE_URL -f 003-migrate-aia.sql
psql $DATABASE_URL -f 004-migrate-pkb.sql
psql $DATABASE_URL -f 005-validate-all.sql

<EFBFBD><EFBFBD>2嚗帋<EFBFBD>甈⊥<EFBFBD><EFBFBD>銵峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

# <20>𥕦遣<F0A595A6><EFBFBD><E689AF>𡁏𧋦
cat 001-create-all-10-schemas.sql \
    002-migrate-platform.sql \
    003-migrate-aia.sql \
    004-migrate-pkb.sql \
    005-validate-all.sql \
    | psql $DATABASE_URL

<EFBFBD><EFBFBD>3嚗帋蝙<EFBFBD>冽㺭<EFBFBD><EFBFBD><EFBFBD>蝡荔<EFBFBD><EFBFBD>Beaver<EFBFBD><EFBFBD>gAdmin嚗?

  1. <EFBFBD><EFBFBD><EFBFBD>唳旿摨枏恥<EFBFBD>瑞垢
  2. 餈墧𦻖<EFBFBD>啁𤌍<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  3. 靘脲活<EFBFBD><EFBFBD>撟嗆<EFBFBD>銵峕<EFBFBD>銝杵QL<EFBFBD><EFBFBD>

<EFBFBD>?撉諹<E69289><EFBFBD><E79A9C>

<EFBFBD><EFBFBD>001<EFBFBD>?

  • 10銝杵chema<EFBFBD><EFBFBD><EFBFBD>𥕦遣<EFBFBD>𣂼<EFBFBD>
  • 瘥譍葵Schema<EFBFBD><EFBFBD>瘜券<EFBFBD>霂湔<EFBFBD>
-- 撉諹<E69289>SQL
SELECT nspname, pg_catalog.obj_description(oid, 'pg_namespace')
FROM pg_namespace
WHERE nspname LIKE '%_schema'
ORDER BY nspname;

<EFBFBD><EFBFBD>002<EFBFBD>?

  • platform_schema.users銵典<E98AB5>撱箸<E692B1><E7AEB8>?- [ ] <20>唳旿隞簵ublic.users摰峕㟲餈<E39FB2>
  • 4銝芰揣撘訫<EFBFBD>撱箸<EFBFBD><EFBFBD>?
-- 撉諹<E69289>SQL
SELECT COUNT(*) AS public_count FROM public.users;
SELECT COUNT(*) AS platform_count FROM platform_schema.users;

<EFBFBD><EFBFBD>003<EFBFBD>?

  • aia_schema<EFBFBD>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
  • <EFBFBD>唳旿摰峕㟲餈<EFBFBD>
  • 憭㚚睸蝥行<EFBFBD><EFBFBD>撱箇<EFBFBD>
-- 撉諹<E69289>SQL
SELECT COUNT(*) FROM aia_schema.projects;
SELECT COUNT(*) FROM aia_schema.conversations;

<EFBFBD><EFBFBD>004<EFBFBD>?

  • pkb_schema<EFBFBD>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
  • <EFBFBD><EFBFBD>鉄Phase 2<><EFBFBD><E586BD><EFBFBD>粉摮埈挾
  • <EFBFBD>唳旿摰峕㟲餈<EFBFBD>
-- 撉諹<E69289>SQL
SELECT COUNT(*) FROM pkb_schema.knowledge_bases;
SELECT COUNT(*) FROM pkb_schema.documents;

<EFBFBD><EFBFBD>005<EFBFBD>?

  • <EFBFBD><EFBFBD><EFBFBD>㗇㺭<EFBFBD><EFBFBD>撖寞<EFBFBD><EFBFBD><EFBFBD>?- [ ] 頝沒chema憭㚚睸撘閧鍂<E996A7><EFBFBD>
  • <EFBFBD>䭾㺭<EFBFBD>桐腺憭?

<EFBFBD><EFBFBD><><EFBFBD>擧㺭<E693A7><EFBFBD>撣?

Platform Schema

platform_schema
<0A><EFBFBD><E5A999><EFBFBD> users (1銵?

AIA Schema

aia_schema
<0A><EFBFBD><E98EBF><EFBFBD> projects
<0A><EFBFBD><E98EBF><EFBFBD> conversations
<0A><EFBFBD><E98EBF><EFBFBD> messages
<0A><EFBFBD><E98EBF><EFBFBD> general_conversations
<0A><EFBFBD><E5A999><EFBFBD> general_messages (5銵?

PKB Schema

pkb_schema
<0A><EFBFBD><E98EBF><EFBFBD> knowledge_bases
<0A><EFBFBD><E98EBF><EFBFBD> documents
<0A><EFBFBD><E98EBF><EFBFBD> batch_tasks
<0A><EFBFBD><E98EBF><EFBFBD> batch_results
<0A><EFBFBD><E5A999><EFBFBD> task_templates (5銵?

蝛搴chema嚗?銝迎<E98A9D>

asl_schema      (AI<41><EFBFBD><E7AE84><EFBFBD>讃 - Week 3霈曇恣)
common_schema   (<28>𡁶鍂<F0A181B6><EFBFBD>撅?
dc_schema       (<28>唳旿皜<E697BF><E79A9C>)
rvw_schema      (摰∠阮蝟餌<E89D9F>)
admin_schema    (餈鞱𨯫蝞∠<E89D9E>)
ssa_schema      (<28><EFBFBD>蝏蠘恣<E8A098><E681A3><EFBFBD>)
st_schema       (蝏蠘恣<E8A098><E681A3><EFBFBD>撌亙<E6928C>)

<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★

1. 鈭见𦛚靽脲擪

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘餉<EFBFBD><EFBFBD><EFBFBD>雿輻鍂鈭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>BEGIN/COMMIT嚗㚁<E59A97>

  • <EFBFBD>𣂼<EFBFBD>嚗𡁜<EFBFBD><EFBFBD><EFBFBD>鈭?- 憭梯揖嚗朞䌊<E69C9E><EFBFBD>皛𡄯<E79A9B><F0A184AF>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD>蝘?

2. 撟<><E6929F><EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祆𣈲<EFBFBD><EFBFBD><EFBFBD>憭齿<EFBFBD>銵䕘<EFBFBD>

  • 雿輻鍂 IF NOT EXISTS <20>𥕦遣撖寡情
  • 雿輻鍂 ON CONFLICT DO NOTHING <20><EFBFBD><E98DA6>唳旿

3. public schema靽萘<E99DBD>

<EFBFBD><EFBFBD>?銝滢<EFBFBD><EFBFBD>𣳇膄* public schema銝剔<E98A9D><E58994>蠘”嚗?- <20><EFBFBD>嚗𡁏䲮靘踹<E99D98>皛𡁜<E79A9B>撖寞<E69296>撉諹<E69289>

  • <EFBFBD><EFBFBD>嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD>摰𡁏糓<EFBFBD><EFBFBD><EFBFBD>?

4. 憭㚚睸蝥行<E89DA5>

<EFBFBD><EFBFBD>頝沒chema憭㚚睸嚗?- <20><><EFBFBD><EFBFBD><E58A90>∟”撘閧鍂 platform_schema.users(id)

  • PostgreSQL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭

<EFBFBD><20><><EFBFBD><EFBFBD>埝䰻

<EFBFBD><EFBFBD>1嚗朞<EFBFBD><EFBFBD>亥◤<EFBFBD><EFBFBD>

*<EFBFBD>躰秤嚗? connection refused

*<EFBFBD><EFBFBD>嚗?

# 璉<><E79289>仙ostgreSQL<51>滚𦛚
sudo systemctl status postgresql

# <20>臬𢆡<E887AC>滚𦛚
sudo systemctl start postgresql

<EFBFBD><EFBFBD>2嚗𡁏<EFBFBD><EFBFBD>𣂷<EFBFBD>頞?

*<EFBFBD>躰秤嚗? permission denied to create schema

*<EFBFBD><EFBFBD>嚗?

-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GRANT CREATE ON DATABASE your_database TO your_user;

<EFBFBD><EFBFBD>3嚗𡁜<EFBFBD><EFBFBD>桃漲<EFBFBD>笔仃韐?

*<EFBFBD>躰秤嚗? violates foreign key constraint

*<EFBFBD><EFBFBD>嚗?

  • 蝖桐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵?002嚗īlatform嚗匧<E59A97><E58CA7><EFBFBD> 003/004嚗Òia/pkb嚗?- 璉<><E79289>交糓<E4BAA4><EFBFBD>摮斤<E691AE><E696A4><EFBFBD>ser_id

<EFBFBD><EFBFBD>4嚗𡁏㺭<EFBFBD><EFBFBD>銝滢<EFBFBD><EFBFBD>?

*<EFBFBD>躰秤嚗? 撉諹<E69289><E8ABB9>𡁏𧋦<F0A1818F><EFBFBD><E4BA99>唳旿<E594B3><EFBFBD><EFBFBD><E98A9D>? *<EFBFBD><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD>交糓<EFBFBD><EFBFBD><EFBFBD>宏餈<EFBFBD><EFBFBD>銝剜鰵憓䂿<EFBFBD><EFBFBD>唳旿
  2. 雿輻鍂ID撖寞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿枏榆撘<EFBFBD><EFBFBD>
    -- <20>曉枂撌桀<E6928C><E6A180><EFBFBD>D
    SELECT id FROM public.users
    EXCEPT
    SELECT id FROM platform_schema.users;
    

<EFBFBD><EFBFBD> <20><EFBFBD><E5A2A7><EFBFBD>

敹恍<EFBFBD><EFBFBD>皛𡄯<EFBFBD><EFBFBD><EFBFBD>嚗?

-- <20>𣳇膄<F0A3B387><E88684><EFBFBD>㗇鰵撱箇<E692B1>Schema嚗<61><E59A97>蝥扯<E89DA5><E689AF>𣳇膄<F0A3B387><E88684><EFBFBD>㕑”<E39591>峕㺭<E5B395><EFBFBD>
DROP SCHEMA IF EXISTS platform_schema CASCADE;
DROP SCHEMA IF EXISTS aia_schema CASCADE;
DROP SCHEMA IF EXISTS pkb_schema CASCADE;
DROP SCHEMA IF EXISTS asl_schema CASCADE;
DROP SCHEMA IF EXISTS common_schema CASCADE;
DROP SCHEMA IF EXISTS dc_schema CASCADE;
DROP SCHEMA IF EXISTS rvw_schema CASCADE;
DROP SCHEMA IF EXISTS admin_schema CASCADE;
DROP SCHEMA IF EXISTS ssa_schema CASCADE;
DROP SCHEMA IF EXISTS st_schema CASCADE;

隞𤾸<EFBFBD>隞賣<EFBFBD>憭?

# <20><EFBFBD><EFBFBD>
psql $DATABASE_URL < backup_20251109_100000.sql

<EFBFBD><EFBFBD> <20>𡒊賒甇仿炊

<EFBFBD>宏摰峕<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

  1. <EFBFBD>湔鰵Prisma<EFBFBD>滨蔭 <20>?閫<><EFBFBD>?

    • <EFBFBD>湔鰵 backend/prisma/schema.prisma
    • 瘛餃<EFBFBD> multiSchema<><E686B8><EFBFBD><EFBFBD>? - 銝?銝杵chema摰帋<E691B0><E79285>
  2. <EFBFBD><EFBFBD><EFBFBD>Prisma Client

    cd backend
    npx prisma generate
    
  3. <EFBFBD>湔鰵隞<EFBFBD><EFBFBD> <20>?閫<><EFBFBD>?2

    • <EFBFBD><EFBFBD><EFBFBD>㗇㺭<EFBFBD><EFBFBD><EFBFBD>亥砭雿輻鍂<EFBFBD>訕chema
    • 瘚贝<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  4. 餈鞱<EFBFBD>瘚贝<EFBFBD> <20>?閫<><EFBFBD>?

    • 瘚贝<EFBFBD>AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
    • 瘚贝<EFBFBD><EFBFBD><EFBFBD>摨枏<EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD> <20><EFBFBD>撣桀𨭌

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> - psql隡朞<E99AA1><E69C9E>箄祕蝏<E7A595><E89D8F><EFBFBD><EFBFBD>靽⊥<E99DBD><E28AA5><EFBFBD>霂?2. *<EFBFBD><EFBFBD><EFBFBD>獢? - <20><><EFBFBD>?09-<2D><EFBFBD>摰墧鴌/01-Schema<6D>𠉛氖<F0A0899B><EFBFBD>霈曇恣嚗?0銝迎<E98A9D>.md
  2. 撉諹<EFBFBD><EFBFBD>唳旿 - 餈鞱<E9A488> 005-validate-all.sql

<EFBFBD>𥕦遣鈭綽<EFBFBD> AI<41><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD> 2025-11-09
*<EFBFBD><EFBFBD>𧋦嚗? V1.0

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>艙嚗𡁜虾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> + 鈭见𦛚靽脲擪 + 摰峕㟲撉諹<E69289> = 摰匧<E691B0><EFBFBD> 潃鐥<E6BD83>潃?