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

296 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Schema餈<61><EFBFBD>𡁏𧋦雿輻鍂<E8BCBB><E98D82><EFBFBD>
> **<2A><>𧋦嚗?* V1.0
> **<2A>𥕦遣<F0A595A6><EFBFBD>嚗?* 2025-11-09
> **餈<><EFBFBD><EFBFBD>嚗?* 隞簵ublic schema餈<61><EFBFBD>?0銝芷<E98A9D>蝳艋chema
---
## <20><> <20>𡁏𧋦皜<F0A78BA6><E79A9C>
| # | <20>𡁏𧋦<F0A1818F>滨妍 | 霂湔<E99C82> | 憸<><EFBFBD>園𡢿 | <20>滨蔭靘肽<E99D98> |
|---|---------|------|---------|---------|
| 1 | `001-create-all-10-schemas.sql` | <20>𥕦遣10銝杵chema嚗?霂衣<E99C82>+7蝛綽<E89D9B> | 5蝘?| <20>?|
| 2 | `002-migrate-platform.sql` | 餈<>宏platform_schema嚗?銝芾”嚗鮁sers嚗?| 15<31><35><EFBFBD> | 001 |
| 3 | `003-migrate-aia.sql` | 餈<>宏aia_schema嚗?銝芾”嚗𡁜笆霂萘㮾<E89098><EFBFBD> | 30<33><30><EFBFBD> | 001, 002 |
| 4 | `004-migrate-pkb.sql` | 餈<>宏pkb_schema嚗?銝芾”嚗𡁶䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD>嚗?| 30<33><30><EFBFBD> | 001, 002 |
| 5 | `005-validate-all.sql` | <20><EFBFBD>撉諹<E69289><E8ABB9>峕㺭<E5B395><EFBFBD><E6A180><EFBFBD><EFBFBD><E689B3>?| 10<31><30><EFBFBD> | 001-004 |
**<EFBFBD>餉恣嚗?* 蝥?.5撠𤩺𧒄
---
## <20><> <20><EFBFBD>甇仿炊
### <20>滨蔭<E6BBA8><E894AD><EFBFBD>
1. **憭<><EFBFBD>唳旿摨橒<E691A8>撘箇<E69298>撱箄悅嚗?*
```bash
pg_dump -U postgres -d your_database > backup_$(date +%Y%m%d_%H%M%S).sql
```
2. **蝖株恕<E6A0AA>唳旿摨栞<E691A8><E6A09E>?*
```bash
# 蝖桐<E89D96>DATABASE_URL<52><EFBFBD><E887AC><EFBFBD><EFBFBD>
echo $DATABASE_URL
# <20>𡝗䰻<F0A19D97>?.env <20><>
```
3. **蝖株恕敶枏<E695B6>銵函<E98AB5><E587BD>?*
```sql
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
```
---
### <20><EFBFBD><EFBFBD>
#### <20><EFBFBD>1嚗帋蝙<E5B88B>私sql<71>賭誘嚗<E8AA98><EFBFBD><EFBFBD>
```bash
# 餈𥕦<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
```
#### <20><EFBFBD>2嚗帋<E59A97>甈⊥<E79488><EFBFBD>銵峕<E98AB5><E5B395><EFBFBD><E39591>?
```bash
# <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
```
#### <20><EFBFBD>3嚗帋蝙<E5B88B>冽㺭<E586BD><EFBFBD><E691B0>蝡荔<E89DA1><EFBFBD>Beaver<65><72>gAdmin嚗?
1. <20><EFBFBD><E69E8F>唳旿摨枏恥<E69E8F>瑞垢
2. 餈墧𦻖<E5A2A7>啁𤌍<E59581><F0A48C8D><EFBFBD><EFBFBD>
3. 靘脲活<E884B2><EFBFBD>撟嗆<E6929F>銵峕<E98AB5>銝杵QL<51><4C>
---
## <20>?撉諹<E69289><EFBFBD><E79A9C>
### <20><EFBFBD>001<30>?
- [ ] 10銝杵chema<6D><EFBFBD><E588B8>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] 瘥譍葵Schema<6D><EFBFBD>瘜券<E7989C>霂湔<E99C82>
```sql
-- 撉諹<E69289>SQL
SELECT nspname, pg_catalog.obj_description(oid, 'pg_namespace')
FROM pg_namespace
WHERE nspname LIKE '%_schema'
ORDER BY nspname;
```
### <20><EFBFBD>002<30>?
- [ ] platform_schema.users銵典<E98AB5>撱箸<E692B1><E7AEB8>?- [ ] <20>唳旿隞簵ublic.users摰峕㟲餈<E39FB2>
- [ ] 4銝芰揣撘訫<E69298>撱箸<E692B1><E7AEB8>?
```sql
-- 撉諹<E69289>SQL
SELECT COUNT(*) AS public_count FROM public.users;
SELECT COUNT(*) AS platform_count FROM platform_schema.users;
```
### <20><EFBFBD>003<30>?
- [ ] aia_schema<6D>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] <20>唳旿摰峕㟲餈<E39FB2>
- [ ] 憭㚚睸蝥行<E89DA5><EFBFBD>撱箇<E692B1>
```sql
-- 撉諹<E69289>SQL
SELECT COUNT(*) FROM aia_schema.projects;
SELECT COUNT(*) FROM aia_schema.conversations;
```
### <20><EFBFBD>004<30>?
- [ ] pkb_schema<6D>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] <20><>鉄Phase 2<><EFBFBD><E586BD><EFBFBD>粉摮埈挾
- [ ] <20>唳旿摰峕㟲餈<E39FB2>
```sql
-- 撉諹<E69289>SQL
SELECT COUNT(*) FROM pkb_schema.knowledge_bases;
SELECT COUNT(*) FROM pkb_schema.documents;
```
### <20><EFBFBD>005<30>?
- [ ] <20><><EFBFBD>㗇㺭<E39787><EFBFBD>撖寞<E69296><EFBFBD><E98A9D>?- [ ] 頝沒chema憭㚚睸撘閧鍂<E996A7><EFBFBD>
- [ ] <20>䭾㺭<E4ADBE>桐腺憭?
---
## <20><><><EFBFBD>擧㺭<E693A7><EFBFBD>撣?
### Platform Schema
```
platform_schema
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> users (1銵?
```
### AIA Schema
```
aia_schema
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> projects
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> conversations
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> messages
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> general_conversations
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> general_messages (5銵?
```
### PKB Schema
```
pkb_schema
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> knowledge_bases
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> documents
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> batch_tasks
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> batch_results
<EFBFBD><EFBFBD><EFBFBD><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>)
```
---
## <20>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★
### 1. 鈭见𦛚靽脲擪
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘餉<EFBFBD><EFBFBD><EFBFBD>雿輻鍂鈭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>BEGIN/COMMIT嚗㚁<E59A97>
- <20>𣂼<EFBFBD>嚗𡁜<E59A97><F0A1819C><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>?*銝滢<E98A9D><E6BBA2>𣳇膄** public schema銝剔<E98A9D><E58994>蠘”嚗?- <20><EFBFBD>嚗𡁏䲮靘踹<E99D98>皛𡁜<E79A9B>撖寞<E69296>撉諹<E69289>
- 皜<><E79A9C>嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E99C82><EFBFBD><E69C9E>𠬍<EFBFBD><F0A0AC8D><EFBFBD>摰𡁏糓<F0A1818F><EFBFBD><E8A180>?
### 4. 憭㚚睸蝥行<E89DA5>
<EFBFBD><EFBFBD>頝沒chema憭㚚睸嚗?- <20><><EFBFBD><EFBFBD><E58A90>∟”撘閧鍂 `platform_schema.users(id)`
- PostgreSQL<51><EFBFBD><E6AFBA><EFBFBD>嚗峕<E59A97><E5B395><EFBFBD><EFBFBD><EFBFBD><E5AF9E>滨蔭
---
## <20><20><><EFBFBD><EFBFBD>埝䰻
### <20><EFBFBD>1嚗朞<E59A97><E69C9E>亥◤<E4BAA5><EFBFBD>
**<2A>躰秤嚗?* `connection refused`
**閫<><E996AB>嚗?*
```bash
# 璉<><E79289>仙ostgreSQL<51>滚𦛚
sudo systemctl status postgresql
# <20>臬𢆡<E887AC>滚𦛚
sudo systemctl start postgresql
```
### <20><EFBFBD>2嚗𡁏<E59A97><F0A1818F>𣂷<EFBFBD>頞?
**<2A>躰秤嚗?* `permission denied to create schema`
**閫<><E996AB>嚗?*
```sql
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GRANT CREATE ON DATABASE your_database TO your_user;
```
### <20><EFBFBD>3嚗𡁜<E59A97><F0A1819C>桃漲<E6A183>笔仃韐?
**<2A>躰秤嚗?* `violates foreign key constraint`
**閫<><E996AB>嚗?*
- 蝖桐<E89D96><E6A190><EFBFBD><EFBFBD>銵?002嚗īlatform嚗匧<E59A97><E58CA7><EFBFBD> 003/004嚗Òia/pkb嚗?- 璉<><E79289>交糓<E4BAA4><EFBFBD>摮斤<E691AE><E696A4><EFBFBD>ser_id
### <20><EFBFBD>4嚗𡁏㺭<F0A1818F><EFBFBD>銝滢<E98A9D><E6BBA2>?
**<2A>躰秤嚗?* 撉諹<E69289><E8ABB9>𡁏𧋦<F0A1818F><EFBFBD><E4BA99>唳旿<E594B3><EFBFBD><EFBFBD><E98A9D>?
**閫<><E996AB>嚗?*
1. 璉<><E79289>交糓<E4BAA4><EFBFBD><EFBFBD>宏餈<E5AE8F><E9A488>銝剜鰵憓䂿<E68693><E482BF>唳旿
2. 雿輻鍂ID撖寞<E69296><EFBFBD><E79289><EFBFBD>雿枏榆撘<E6A686><E69298>
```sql
-- <20>曉枂撌桀<E6928C><E6A180><EFBFBD>D
SELECT id FROM public.users
EXCEPT
SELECT id FROM platform_schema.users;
```
---
## <20><> <20><EFBFBD><E5A2A7><EFBFBD>
### 敹恍<E695B9><EFBFBD>皛𡄯<E79A9B><F0A184AF><EFBFBD>嚗?
```sql
-- <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;
```
### 隞𤾸<E99A9E>隞賣<E99A9E>憭?
```bash
# <20><EFBFBD><EFBFBD>
psql $DATABASE_URL < backup_20251109_100000.sql
```
---
## <20><> <20>𡒊賒甇仿炊
<EFBFBD>宏摰峕<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. **<2A>湔鰵Prisma<6D>滨蔭** <20>?閫<><EFBFBD>?
- <20>湔鰵 `backend/prisma/schema.prisma`
- 瘛餃<E7989B> `multiSchema` 憸<><E686B8><EFBFBD><EFBFBD>? - 銝?銝杵chema摰帋<E691B0><E79285>
2. **<2A><><EFBFBD>Prisma Client**
```bash
cd backend
npx prisma generate
```
3. **<2A>湔鰵隞<E9B0B5><E99A9E>** <20>?閫<><EFBFBD>?2
- <20><><EFBFBD>㗇㺭<E39787><EFBFBD><E6A180>亥砭雿輻鍂<E8BCBB>訕chema
- 瘚贝<E7989A><E8B49D><EFBFBD><E594B3><EFBFBD>
4. **餈鞱<E9A488>瘚贝<E7989A>** <20>?閫<><EFBFBD>?
- 瘚贝<E7989A>AI<41><EFBFBD><E7AE84><EFBFBD>
- 瘚贝<E7989A><E8B49D><EFBFBD>摨枏<E691A8><E69E8F>?
---
## <20><> <20><EFBFBD>撣桀𨭌
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
1. **<2A><EFBFBD><E4BAA6><EFBFBD>** - psql隡朞<E99AA1><E69C9E>箄祕蝏<E7A595><E89D8F><EFBFBD><EFBFBD>靽⊥<E99DBD><E28AA5><EFBFBD>霂?2. **璉<><E79289><EFBFBD>獢?* - <20><><EFBFBD>?`09-<2D><EFBFBD>摰墧鴌/01-Schema<6D>𠉛氖<F0A0899B><EFBFBD>霈曇恣嚗?0銝迎<E98A9D>.md`
3. **撉諹<E69289><E8ABB9>唳旿** - 餈鞱<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>潃?