Files
AIclinicalresearch/docs/05-部署文档/08-PostgreSQL数据库部署操作手册.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

26 KiB
Raw Blame History

PostgreSQL 15 <20>唳旿摨㯄<E691A8>蝵脫<E89DB5>雿𨀣<E99BBF><F0A880A3>?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-24
<EFBFBD><EFBFBD><EFBFBD>箸艶: <20>砍𧑐PostgreSQL<51>唳旿摨栞<E691A8>蝘餃<E89D98><E9A483><EFBFBD>鈭駵DS
**<2A>唳旿摨梶<E691A8><E6A2B6>?*: PostgreSQL 15
<EFBFBD>函蔡<EFBFBD><EFBFBD>: pg_dump<6D><EFBFBD>撖澆<E69296>
<EFBFBD><EFBFBD>園𡢿: 30<33><30><EFBFBD>


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

  1. <EFBFBD>函蔡璁<EFBFBD>
  2. [<5B>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>包(#2-<2D>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>?
  3. <EFBFBD>函蔡甇仿炊
  4. 撉諹<EFBFBD>瘚贝<EFBFBD>
  5. 摰匧<EFBFBD><EFBFBD>惩𤐄
  6. 撣貉<EFBFBD><EFBFBD><EFBFBD>
  7. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  8. [<5B><>雿喳<E99BBF>頝琶(#8-<2D><>雿喳<E99BBF>頝?

1. <20>函蔡璁<E894A1>

1.1 <20>函蔡<E587BD><EFBFBD>

<EFBFBD><EFBFBD>: <EFBFBD>𧋦<EFBFBD>蚤ocker PostgreSQL<51>唳旿摨枏<E691A8><E69E8F><EFBFBD>蝘餃<E89D98><E9A483><EFBFBD>鈭駵DS PostgreSQL 15

<EFBFBD><EFBFBD>: pg_dump<EFBFBD><EFBFBD>撖澆枂 + psql撖澆<E69296>

隡睃飵:
  <EFBFBD>?100%摰峕㟲嚗<E39FB2><E59A97><EFBFBD>?<3F>唳旿+蝝<E89D9D>+憭㚚睸嚗?
  <EFBFBD>?銝<>甈⊥<E79488><EFBFBD><E689B9>?
  <EFBFBD>?<3F><EFBFBD>憭齿<E686AD>銵?
  <EFBFBD>?蝞<><E89D9E>訫虾<E8A8AB>?
  <EFBFBD>?<3F><>鉄pg-boss銵剁<E98AB5>銝漤<E98A9D><EFBFBD><E996AC><EFBFBD><EFBFBD><E7A08D><EFBFBD><EFBFBD>

1.2 <20>函蔡<E587BD><EFBFBD>

<EFBFBD>砍𧑐<EFBFBD><EFBFBD>                              <20><EFBFBD>鈭駵DS
<0A>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?                 <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<0A>?                <20>?                 <20>?                <20>?
<0A>? Docker         <20>? pg_dump撖澆枂     <20>? RDS PostgreSQL <20>?
<0A>? PostgreSQL 15  <20>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>><3E>? 15.14          <20>?
<0A>?                <20>? psql撖澆<E69296>        <20>?                <20>?
<0A>? 26 MB<4D>唳旿      <20>?                 <20>? VPC<50><43><EFBFBD>        <20>?
<0A>? 10銝杵chema     <20>?                 <20>? 2<>?GB         <20>?
<0A>? 34銝芾”         <20>?                 <20>? 50GB摮睃<E691AE>       <20>?
<0A><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?                 <20><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

1.3 <20>唳旿摨㮖縑<E3AE96>?

<EFBFBD>砍𧑐<EFBFBD>唳旿摨?

摰孵膥<EFBFBD>滨妍: ai-clinical-postgres
<EFBFBD>𨅯<EFBFBD>: postgres:15-alpine
<EFBFBD>唳旿摨枏<EFBFBD>: ai_clinical_research
<EFBFBD><EFBFBD><EFBFBD>? postgres
<EFBFBD><EFBFBD>: postgres
蝡臬藁: 5432
<EFBFBD>唳旿憭批<EFBFBD>: 蝥?6 MB

RDS<EFBFBD>唳旿摨?

摰硺<EFBFBD>ID: pgm-2zex1m2y3r23hdn5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD>唳旿摨枏<EFBFBD>: ai_clinical_research
<EFBFBD><EFBFBD><EFBFBD>? airesearch
<EFBFBD><EFBFBD>: Xibahe@fengzhibo117
<EFBFBD><EFBFBD>𧋦: PostgreSQL 15.14
<EFBFBD>: 2<EFBFBD>?GB
摮睃<EFBFBD>: 50GB SSD
<EFBFBD><EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
VPC: vpc-2ze055cptkew9c38w4r06 (172.17.0.0/16)
<EFBFBD><EFBFBD><EFBFBD>? 172.17.0.0/16嚗ĀPC蝵烐挾嚗?
<EFBFBD>嗅躹: Asia/Shanghai

2. <20>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>?

2.1 <20>砍𧑐<E7A08D><EFBFBD><EFBFBD><E79289>?

# 1. 璉<><E79289>主ocker<65>臬炏餈鞱<E9A488>
docker --version

# 2. 璉<><E79289>仙ostgreSQL摰孵膥<E5ADB5><EFBFBD>?
docker ps --filter "name=ai-clinical-postgres"
# 憸<><E686B8>颲枏枂: 摰孵膥<E5ADB5><EFBFBD><E59786>蛹 Up嚗<70><E59A97>摨瑞𠶖<E7919E><F0A0B696>蛹 healthy

# 3. 撉諹<E69289><E8ABB9>砍𧑐<E7A08D>唳旿摨栞<E691A8><E6A09E>?
docker exec ai-clinical-postgres psql -U postgres -d ai_clinical_research -c "SELECT version();"
# 憸<><E686B8>颲枏枂: PostgreSQL 15.x

# 4. 璉<><E79289>交㺭<E4BAA4><EFBFBD>憭批<E686AD>
docker exec ai-clinical-postgres psql -U postgres -d ai_clinical_research -c "SELECT pg_size_pretty(pg_database_size('ai_clinical_research'));"
# 憸<><E686B8>颲枏枂: 蝥?6 MB

2.2 RDS<44><EFBFBD><EFBFBD><E79289>?

<EFBFBD>𡢅<EFBFBD> RDS摰硺<E691B0>撌脣<E6928C>撱箔<E692B1>餈鞱<E9A488>銝?
<EFBFBD>𡢅<EFBFBD> VPC<50>䔶漱<E494B6>㦤撌脤<E6928C>蝵?
<EFBFBD>𡢅<EFBFBD> <20><EFBFBD><E8B3A2>訫歇<E8A8AB>滨蔭: 172.17.0.0/16
<EFBFBD>𡢅<EFBFBD> <20>嗅躹撌脰挽蝵? Asia/Shanghai
<EFBFBD>𡢅<EFBFBD> <20>唳旿摨梶鍂<E6A2B6>瑕歇<E79195>𥕦遣: airesearch
<EFBFBD>𡢅<EFBFBD> <20>唳旿摨枏<E691A8><E69E8F><EFBFBD>歇霈啣<E99C88>: Xibahe@fengzhibo117

2.3 蝵𤑳<E89DB5>餈墧𦻖璉<F0A6BB96><E79289>?

<EFBFBD><EFBFBD>A: <EFBFBD><EFBFBD>CS頝單踎<EFBFBD>?
  - <EFBFBD><EFBFBD><EFBFBD>ECS<EFBFBD><EFBFBD>IP
  - <EFBFBD><EFBFBD><EFBFBD>SSH撖<EFBFBD>𤨎<EFBFBD><EFBFBD><EFBFBD>?
  - 蝖桐<EFBFBD>ECS<EFBFBD><EFBFBD><EFBFBD>VPC

<EFBFBD><EFBFBD>B: 銝湔𧒄憭𣇉<EFBFBD>霈輸䔮嚗<EFBFBD>𧋦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鍂嚗?
  - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>爹DS憭𣇉<EFBFBD><EFBFBD><EFBFBD>
  - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵桃蒾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嗡蝙<EFBFBD>?.0.0.0/0嚗?
  - <EFBFBD>𩤃<EFBFBD> 摰峕<E691B0><E5B395>𡒊<EFBFBD><F0A1928A><EFBFBD><E596B3><EFBFBD>蝵𤏸挪<F0A48FB8>?

3. <20>函蔡甇仿炊

甇仿炊1: 撖澆枂<E6BE86>砍𧑐<E7A08D>唳旿摨橒<E691A8>5<EFBFBD><35><EFBFBD>嚗?

1.1 撖澆枂<E6BE86>唳旿摨?

# <20>券★<E588B8>格覔<E6A0BC><EFBFBD><E6A180><EFBFBD>
cd D:\MyCursor\AIclinicalresearch

# 撖澆枂摰峕㟲<E5B395>唳旿摨橒<E691A8><E6A992><EFBFBD>𡠺蝏𤘪<E89D8F><F0A498AA><EFBFBD><EFBFBD><EFBFBD><E69FB4>揣撘𨰻<E69298><F0A8B0BB><EFBFBD><EFBFBD><EFBFBD>
docker exec ai-clinical-postgres pg_dump `
  -U postgres `
  -d ai_clinical_research `
  --format=plain `
  --no-owner `
  --no-acl `
  --encoding=UTF8 `
  > "rds_init_$(Get-Date -Format 'yyyyMMdd_HHmmss').sql"

*<EFBFBD><EFBFBD>㺭霂湔<EFBFBD>嚗?

-U postgres: 雿輻鍂postgres<EFBFBD><EFBFBD>
-d ai_clinical_research: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳旿摨枏<EFBFBD>
--format=plain: 蝥舀<EFBFBD><EFBFBD>昤QL<EFBFBD><EFBFBD>
--no-owner: 銝滚紡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--no-acl: 銝滚紡<EFBFBD><EFBFBD><EFBFBD>𣂷縑<EFBFBD><EFBFBD>雿輻鍂RDS暺䁅恕<EFBFBD><EFBFBD><EFBFBD>嚗?
--encoding=UTF8: UTF-8蝻𣇉<E89DBB><EFBFBD><EFBFBD><E89189>𣈲<EFBFBD><F0A388B2><EFBFBD>

1.2 撉諹<E69289>撖澆枂<E6BE86><E69E82>

# 璉<><E79289><EFBFBD>隞嗅之撠誩<E692A0><E8AAA9>𥕦遣<F0A595A6>園𡢿
Get-ChildItem rds_init_*.sql | 
  Sort-Object LastWriteTime -Descending | 
  Select-Object -First 1 | 
  Format-Table Name, @{Name="Size(MB)";Expression={[math]::Round($_.Length/1MB,2)}}, LastWriteTime -AutoSize

*<EFBFBD><EFBFBD>蝏𤘪<EFBFBD>嚗?

Name                         Size(MB) LastWriteTime      
----                         -------- -------------      
rds_init_20251224_154529.sql 88.23    2025/12/24 15:45:30

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>?<3F><>辣憭批<E686AD><E689B9><EFBFBD><EFBFBD>嚗?0-100 MB嚗?
<EFBFBD>?<3F><><EFBFBD>𥕦遣<F0A595A6>園𡢿銝箏<E98A9D><E7AE8F>?
<EFBFBD>?<3F><><EFBFBD><EFBFBD><E6BB9A>急𧒄<E680A5><EFBFBD>

甇仿炊2: 撘<><E69298>爹DS憭𣇉<E686AD>霈輸䔮嚗?<3F><><EFBFBD>嚗?

<EFBFBD>𩤃<EFBFBD> *<EFBFBD><EFBFBD>摰匧<EFBFBD><EFBFBD>鞟內嚗? 甇斗郊撉支<E69289>銝湔𧒄撘<F0A79284><E69298>暹㺭<E69AB9><EFBFBD><E6A180><EFBFBD><EFBFBD>蝵𤏸挪<F0A48FB8><EFBFBD>摮睃銁摰匧<E691B0>憌𡡞埯<F0A1A19E><E59FAF><EFBFBD>憿餃銁撖澆<E69296>摰峕<E691B0><E5B395>𡒊<EFBFBD><F0A1928A><EFBFBD><E596B3><EFBFBD>

2.1 <20><EFBFBD>RDS<44><EFBFBD><E689B9>?

霈輸䔮: https://rdsnext.console.aliyun.com/
<0A><EFBFBD>: <20>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>

2.2 <20>唾窈憭𣇉<E686AD><F0A38789><EFBFBD>

  1. <EFBFBD><EFBFBD>摰硺<EFBFBD>嚗䫤pgm-2zex1m2y3r23hdn5`
  2. <EFBFBD>孵稬摰硺<EFBFBD>ID嚗諹<EFBFBD><EFBFBD><EFBFBD>靘贝祕<EFBFBD>?
  3. 撌虫儒<EFBFBD>𨅯<EFBFBD>嚗?<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>? <20>?<EFBFBD>唾窈憭𣇉<EFBFBD><EFBFBD><EFBFBD>
  4. 蝡臬藁嚗䫤5432`嚗<><E59A97>霈歹<E99C88>
  5. <EFBFBD>孵稬 蝖桀<EFBFBD>
  6. 蝑匧<EFBFBD>30-60蝘𡜐<E89D98>憭𣇉<E686AD><F0A38789><EFBFBD><E595A3><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD>蝷箔<EFBFBD>嚗?

pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com

<EFBFBD>𩤃<EFBFBD> 霈啣<EFBFBD>甇文𧑐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏剜郊撉日<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

2.3 <20>滨蔭<E6BBA8><EFBFBD><E8B3A2>?

*<EFBFBD><EFBFBD>鈭睲<EFBFBD>撘寧<EFBFBD>䔮嚗?

<EFBFBD>臬炏撠?0.0.0.0/0 <20><EFBFBD><E683A9><EFBFBD><E8B3A2>𤏪<EFBFBD>

*<EFBFBD>㗇𥋘嚗𡁶<EFBFBD><EFBFBD><EFBFBD>峕糓<EFBFBD>?

*憌𡡞埯霂湔<EFBFBD>嚗?

憌𡡞埯: <EFBFBD><EFBFBD><EFBFBD>䔶遙雿蓥犖<EFBFBD>賢虾隞亙<EFBFBD>霂閗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DS

蝻栞圾<EFBFBD>芣鴌:
  <EFBFBD>?撖<><E69296>撘箏漲擃矋<E69383>Xibahe@fengzhibo117嚗?
  <EFBFBD>?隞<>鍂10<31><30><EFBFBD>摰峕<E691B0>撖澆<E69296>
  <EFBFBD>?撖澆<E69296><E6BE86>𡒊<EFBFBD><F0A1928A><EFBFBD><E596B3><EFBFBD>蝵𤏸挪<F0A48FB8>?
  <EFBFBD>?摰鮋<E691B0><E9AE8B>湧蠧<E6B9A7>園𡢿<E59C92><F0A1A2BF><EFBFBD>

<EFBFBD>舀𦻖<EFBFBD><EFBFBD>? <20>?銝湔𧒄靚<F0A79284><E99D9A><EFBFBD><EFBFBD><EFBFBD>

甇仿炊3: <20>𥕦遣<F0A595A6>唳旿摨橒<E691A8>1<EFBFBD><31><EFBFBD>嚗?

3.1 餈墧𦻖<E5A2A7>訌DS

# 瘚贝<E7989A>餈墧𦻖嚗<F0A6BB96><E59A97><EFBFBD><EFBFBD>暺䁅恕postgres<65>唳旿摨橒<E691A8>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d postgres `
  -c "SELECT version();"

*<EFBFBD><EFBFBD>颲枏枂嚗?

                          version                          
------------------------------------------------------------
 PostgreSQL 15.14 on x86_64-pc-linux-gnu, compiled by gcc
(1 row)

3.2 <20>𥕦遣<F0A595A6>唳旿摨?

# <20>𥕦遣ai_clinical_research<63>唳旿摨?
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d postgres `
  -c "CREATE DATABASE ai_clinical_research WITH ENCODING='UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8' TEMPLATE=template0;"

*<EFBFBD><EFBFBD>颲枏枂嚗?

CREATE DATABASE

3.3 撉諹<E69289><E8ABB9>唳旿摨枏<E691A8>撱?

# 撉諹<E69289><E8ABB9>唳旿摨枏<E691A8><E69E8F>?
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d postgres `
  -c "\l ai_clinical_research"

甇仿炊4: 撖澆<E69296><E6BE86>唳旿<E594B3>訌DS嚗?-8<><38><EFBFBD>嚗争<E59A97>潃鐥<E6BD83>

<EFBFBD>?*餈蹱糓<EFBFBD><EFBFBD><EFBFBD>喲睸<EFBFBD><EFBFBD>郊撉歹<EFBFBD>霂瑁<EFBFBD>𣂼<EFBFBD>蝑匧<EFBFBD>嚗?

4.1 <20><EFBFBD>撖澆<E69296>

# <20><EFBFBD>蝞⊿<E89D9E><EFBFBD>QL<51><4C>辣撖澆<E69296>RDS
$env:PGPASSWORD="Xibahe@fengzhibo117"
Get-Content "rds_init_20251224_154529.sql" | `
  docker exec -i -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
    -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
    -p 5432 `
    -U airesearch `
    -d ai_clinical_research

*瘜冽<EFBFBD>嚗? 霂瑕<E99C82><E79195><EFBFBD><EFBFBD>?rds_init_20251224_154529.sql <20>踵揢銝箏<E98A9D><E7AE8F><EFBFBD><EFBFBD><EFBFBD><E7AE87><EFBFBD><EFBFBD><EFBFBD>?

4.2 撖澆<E69296><EFBFBD><E9A488>颲枏枂蝷箔<E89DB7>

SET
SET
CREATE SCHEMA
CREATE SCHEMA
...嚗<><EFBFBD><EFBFBD><E6B8A1>交㺭<E4BAA4><EFBFBD>嚗?..
CREATE TABLE
CREATE TABLE
COPY 1204  <20>?撖澆<E69296>1204銵峕㺭<E5B395>?
COPY 783
COPY 3
...
CREATE INDEX
CREATE INDEX
ALTER TABLE
...

*撖澆<EFBFBD><EFBFBD>園𡢿隡啁<EFBFBD>嚗?

<EFBFBD><EFBFBD>辣憭批<EFBFBD>: 88 MB
<EFBFBD><EFBFBD>園𡢿: 5-8 <EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>鈭? 蝵𤑳<E89DB5>撣血捐<E8A180>朙DS<44><EFBFBD><E59D94>笔漲

餈𥕦漲<EFBFBD><EFBFBD>:
  - <EFBFBD><EFBFBD> CREATE SCHEMA <20>?Schema<6D>𥕦遣銝?
  - <EFBFBD><EFBFBD> CREATE TABLE <20>?銵典<E98AB5>撱箔葉
  - <EFBFBD><EFBFBD> COPY <20><EFBFBD> <20>?<3F>唳旿撖澆<E69296>銝哨<E98A9D><E593A8><EFBFBD><E595A3><EFBFBD><E888AA><EFBFBD>
  - <EFBFBD><EFBFBD> CREATE INDEX <20>?蝝<E89D9D><EFBCB7>𥕦遣銝?
  - <EFBFBD><EFBFBD> ALTER TABLE <20>?憭㚚睸<E39A9A>𥕦遣銝?

4.3 撖澆<E69296>摰峕<E691B0><E5B395><EFBFBD><EFBFBD>

敶枏𦶢隞斗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝷箇泵<EFBFBD><EFBFBD>霂湔<EFBFBD>撖澆<EFBFBD>摰峕<EFBFBD><EFBFBD>?


甇仿炊5: 撉諹<E69289>撖澆<E69296>蝏𤘪<E89D8F>嚗?<3F><><EFBFBD>嚗?

5.1 撉諹<E69289>Schema

# 璉<><E79289>兄chema<6D><EFBFBD>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT nspname FROM pg_namespace WHERE nspname LIKE '%_schema' ORDER BY nspname;"

*<EFBFBD><EFBFBD>颲枏枂嚗?

      nspname       
--------------------
 admin_schema
 aia_schema
 asl_schema
 common_schema
 dc_schema
 pkb_schema
 platform_schema
 rvw_schema
 ssa_schema
 st_schema
(10 rows)

<EFBFBD>?摨磰砲<EFBFBD><EFBFBD>10銝杵chema

5.2 撉諹<E69289>銵冽㺭<E586BD>?

# 璉<><E79289><EFBFBD>銝杵chema<6D><61><EFBFBD><EFBFBD>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT schemaname, COUNT(*) as table_count FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') GROUP BY schemaname ORDER BY schemaname;"

*<EFBFBD><EFBFBD>颲枏枂嚗?

   schemaname    | table_count 
-----------------+-------------
 aia_schema      |           5
 asl_schema      |           6
 dc_schema       |           6
 pkb_schema      |           5
 platform_schema |           8
 public          |           4
(6 rows)

<EFBFBD>?<EFBFBD>餉恣嚗?4銝芾”

5.3 撉諹<E69289>pg-boss銵剁<E98AB5><E58981>喲睸嚗?

# 璉<><E79289>叼g-boss<73>?銝芾”<E88ABE>臬炏摮睃銁
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT tablename FROM pg_tables WHERE schemaname = 'platform_schema' AND tablename IN ('job', 'queue', 'schedule', 'subscription', 'job_common', 'version') ORDER BY tablename;"

*<EFBFBD><EFBFBD>颲枏枂嚗?

  tablename   
--------------
 job
 job_common
 queue
 schedule
 subscription
 version
(6 rows)

<EFBFBD>?pg-boss<73>?銝芾”<E88ABE><EFBFBD>摮睃銁

*霂湔<EFBFBD>嚗?

pg-boss銵函<E98AB5>雿𦦵鍂:
  - job: 隞餃𦛚<EFBFBD><EFBFBD>銵?
  - queue: <EFBFBD><EFBFBD><EFBFBD>滨蔭銵?
  - schedule: 摰𡁏𧒄隞餃𦛚銵?
  - subscription: <EFBFBD>銵?
  - job_common: 隞餃𦛚<EFBFBD>𡁶鍂<EFBFBD>滨蔭銵?
  - version: pg-boss<73><73>𧋦銵?

銝箔<EFBFBD><EFBFBD><EFBFBD>閬?
  - backend摨𠉛鍂靘肽<EFBFBD>pg-boss餈𥡝<E9A488><EFBFBD>郊隞餃𦛚憭<F0A69B9A><E686AD>
  - <EFBFBD><EFBFBD>餈嗘<EFBFBD>銵其<EFBFBD>摮睃銁嚗𠩯ackend<EFBFBD>臬𢆡隡𡁜仃韐?
  - <EFBFBD><EFBFBD>pg_dump撖澆<EFBFBD>嚗諹<EFBFBD>鈭𥡝”隡朞䌊<EFBFBD><EFBFBD><EFBFBD>?
  - 銝漤<EFBFBD><EFBFBD>銁Prisma Schema銝剖<E98A9D>銋?

5.4 撉諹<E69289><E8ABB9>唳旿<E594B3>?

# 璉<><E79289><EFBFBD><E4BA99>株”<E6A0AA><E2809D><EFBFBD><EFBFBD>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT COUNT(*) as user_count, 'platform_schema.users' as table_name FROM platform_schema.users UNION ALL SELECT COUNT(*), 'aia_schema.projects' FROM aia_schema.projects UNION ALL SELECT COUNT(*), 'asl_schema.literatures' FROM asl_schema.literatures;"

*<EFBFBD><EFBFBD>颲枏枂蝷箔<EFBFBD>嚗?

 user_count |       table_name       
------------+------------------------
          3 | platform_schema.users
          2 | aia_schema.projects
       1204 | asl_schema.literatures
(3 rows)

<EFBFBD>?**<2A>唳旿<E594B3><EFBFBD><E8AD8D>砍𧑐銝<F0A79190><E98A9D>?*

5.5 撉諹<E69289><E89D9D><EFBCB7><EFBFBD><EFBFBD><EFBFBD>?

# 璉<><E79289>亦揣撘閙㺭<E99699>?
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT schemaname, COUNT(*) as index_count FROM pg_indexes WHERE schemaname NOT IN ('pg_catalog', 'information_schema') GROUP BY schemaname ORDER BY schemaname;"
# 璉<><E79289><EFBFBD><E4BA99>桃漲<E6A183><E6BCB2><EFBFBD>?
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT COUNT(*) as fk_count FROM pg_constraint WHERE contype = 'f';"

甇仿炊6: <20>喲𡡒憭𣇉<E686AD>霈輸䔮嚗?<3F><><EFBFBD>嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>

<EFBFBD>𩤃<EFBFBD> *餈蹱糓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>冽郊撉歹<EFBFBD><EFBFBD>◆蝡见朖<EFBFBD><EFBFBD>嚗?

6.1 <20>𦠜𦆮憭𣇉<E686AD><F0A38789><EFBFBD>

  1. *<EFBFBD>𧼮<EFBFBD>RDS<EFBFBD><EFBFBD><EFBFBD>?

    • 摰硺<EFBFBD>霂行<EFBFBD>憿菟𢒰
  2. *<EFBFBD><EFBFBD><EFBFBD>峕㺭<EFBFBD><EFBFBD>餈墧𦻖<EFBFBD>?

  3. <EFBFBD><EFBFBD>憭𣇉<EFBFBD><EFBFBD><EFBFBD>

    pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com
    
  4. *<EFBFBD>孵稬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD>?

  5. *<EFBFBD>霈文笆霂脲<EFBFBD>銝剔<EFBFBD><EFBFBD><EFBFBD>𣬚摰𠾼<EFBFBD>?

  6. *蝑匧<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

  7. *蝖株恕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝箝<EFBFBD>峕𧊋<EFBFBD>唾窈<EFBFBD>? <20>?

6.2 撉諹<E69289>憭𣇉<E686AD>霈輸䔮撌脣<E6928C><E884A3>?

# 撠肽<E692A0>隞擧𧋦<E693A7><EFBFBD><E59597><EFBFBD>蝵穃𧑐<E7A983><F0A79190><EFBFBD><E59A97>霂亙仃韐伐<E99F90>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d ai_clinical_research `
  -c "SELECT 1;" `
  --connect-timeout=5

# 憸<><E686B8>蝏𤘪<E89D8F>: 餈墧𦻖頞<F0A6BB96>𧒄<EFBFBD>𤥁<EFBFBD><F0A4A581>亙仃韐?

*<EFBFBD><EFBFBD><EFBFBD>躰秤嚗?

psql: error: connection timed out

<EFBFBD>?餈嗘葵<EFBFBD>躰秤霂湔<EFBFBD>憭𣇉<EFBFBD>霈輸䔮撌脫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

6.3 <20><><EFBFBD><E89D8F><EFBFBD>函𠶖<E587BD>?

RDS餈墧𦻖<EFBFBD>滨蔭:
  <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com <20>?(靽萘<E99DBD>)
  憭𣇉<EFBFBD><EFBFBD><EFBFBD>: 撌脣<EFBFBD><EFBFBD>?<3F>?
  <EFBFBD><EFBFBD><EFBFBD>? 172.17.0.0/16 (VPC蝵烐挾) <20>?
  
摰匧<EFBFBD><EFBFBD><EFBFBD>?
  <EFBFBD>?憭𣇉<E686AD><F0A38789><EFBFBD>霈輸䔮
  <EFBFBD>?<3F><EFBFBD>VPC<50><43><EFBFBD>SAE摨𠉛鍂<F0A0899B>臭誑餈墧𦻖
  <EFBFBD>?摰匧<E691B0>憌𡡞埯撌脫<E6928C><E884AB>?
  <EFBFBD>?<3F>唳旿摨枏<E691A8>鈭擧<E988AD>摰匧<E691B0><E58CA7><EFBFBD>?

4. 撉諹<E69289>瘚贝<E7989A>

4.1 <20>砍𧑐摨𠉛鍂餈墧𦻖瘚贝<E7989A><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>霂閗<EFBFBD><EFBFBD>充DS嚗屸<EFBFBD><EFBFBD>遣蝡喹SH<EFBFBD><EFBFBD>嚗?

# <20>齿<EFBFBD>: <20><><EFBFBD><E996AC>ECS頝單踎<E596AE>?

# 撱箇<E692B1>SSH<53><EFBFBD>
ssh -N -L 5433:pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432 root@ECS<EFBFBD><EFBFBD>IP

# <20>典𡖂銝<F0A19682>銝芰<E98A9D>蝡舀<E89DA1>霂閗<E99C82><E99697>?
$env:PGPASSWORD="Xibahe@fengzhibo117"
psql -h localhost -p 5433 -U airesearch -d ai_clinical_research -c "SELECT version();"

4.2 <20>滨蔭backend餈墧𦻖RDS

# backend/.env
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=10&pool_timeout=10&connect_timeout=10

# <20>𩤃<EFBFBD> 瘜冽<E7989C>: 撖<><E69296>銝剔<E98A9D> @ 蝚血噡敹<E599A1>◆頧砌<E9A0A7>銝?%40

*URL蝻𣇉<EFBFBD><EFBFBD><EFBFBD>嚗?

<EFBFBD><EFBFBD>摮㛖泵頧砌<EFBFBD>:
  @ -> %40
  # -> %23
  $ -> %24
  % -> %25
  & -> %26
  + -> %2B
  蝛箸聢 -> %20

4.3 backend<6E>臬𢆡瘚贝<E7989A>

cd backend
npm run dev

# 憸<><E686B8><EFBFBD><EFBFBD>:
# <20>?<3F>唳旿摨栞<E691A8><E6A09E><EFBFBD><E4BAA4>?
# <20>?pg-boss started
# <20>?Server listening on 0.0.0.0:3001

5. 摰匧<E691B0><E58CA7>惩𤐄

5.1 撖<><E69296>摰匧<E691B0>

敶枏<EFBFBD><EFBFBD><EFBFBD>: Xibahe@fengzhibo117

撘箏漲霂<EFBFBD>:
  <EFBFBD>?<3F>踹漲: 21銝芸<EFBFBD>蝚?
  <EFBFBD>?憭批<E686AD>摮埈<E691AE>: Xibahe, X, S
  <EFBFBD>?撠誩<E692A0>摮埈<E691AE>: ibahe, fengzhibo
  <EFBFBD>?<3F><EFBFBD>: 117
  <EFBFBD>?<3F><EFBFBD>蝚血噡: @
  <EFBFBD>?撘箏漲: 擃?

撱箄悅:
  - 摰𡁏<EFBFBD>頧格揢撖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-6銝芣<E98A9D>嚗?
  - 銝滩<EFBFBD><EFBFBD>其誨<EFBFBD><EFBFBD>葉蝖祉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  - <EFBFBD>芸銁SAE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝剝<EFBFBD>蝵?
  - 銝滩<EFBFBD><EFBFBD>𣂷漱<EFBFBD>蚣it隞枏<EFBFBD>

5.2 <20><EFBFBD><E8B3A2><EFBFBD>蝵?

敶枏<EFBFBD><EFBFBD>滨蔭: 172.17.0.0/16 (VPC蝵烐挾)

<EFBFBD><EFBFBD>雿喳<EFBFBD>頝?
  <EFBFBD>?雿輻鍂VPC蝵烐挾嚗䔶<E59A97><E494B6><EFBFBD><E585B8>截P
  <EFBFBD>?SAE摰硺<E691B0>IP隡𡁜<E99AA1><F0A1819C><EFBFBD><E59094>閙㦤IP隡𡁜紡<F0A1819C><EFBFBD><E6B8B2>亙仃韐?
  <EFBFBD>?銝滩<E98A9D><E6BBA9>滨蔭 0.0.0.0/0嚗<30><E59A97>蝵穃<E89DB5><E7A983><EFBFBD>
  <EFBFBD>?銝滩<E98A9D><E6BBA9>滨蔭憭帋葵<E5B88B>閙㦤IP嚗<50><EFBFBD>文𤌴<E69687><EFBFBD>

撉諹<EFBFBD>:
  - RDS<EFBFBD><EFBFBD><EFBFBD>?> <20>唳旿摰匧<E691B0><E58CA7>?> <20><EFBFBD><E8B3A2>閗挽蝵?
  - 蝖株恕<EFBFBD><EFBFBD> 172.17.0.0/16
  - 蝖株恕瘝⊥<EFBFBD> 0.0.0.0/0

5.3 霈輸䔮<E8BCB8><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  airesearch: 摨𠉛鍂銝梶鍂<EFBFBD><EFBFBD>
    - <EFBFBD><EFBFBD><EFBFBD>: SELECT, INSERT, UPDATE, DELETE
    - 銝滩<EFBFBD><EFBFBD><EFBFBD>蝥抒鍂<EFBFBD>?postgres
    - <EFBFBD><EFBFBD>撠𤩺<EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>?

餈墧𦻖<EFBFBD>𣂼<EFBFBD>:
  - <EFBFBD>滨蔭 connection_limit=10嚗<30><E59A97>銝杵AE摰硺<E691B0>嚗?
  - <EFBFBD><EFBFBD>餈墧𦻖瘙㰘<EFBFBD>堒偷
  - RDS<EFBFBD><EFBFBD>憭扯<EFBFBD><EFBFBD>交㺭: 400

5.4 憭<>遢蝑𣇉裦

RDS<EFBFBD>芸𢆡憭<EFBFBD>遢嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  <EFBFBD>唳旿憭<EFBFBD>: 瘥誩予銝<EFBFBD>甈?
  <EFBFBD><EFBFBD><EFBFBD>: 摰墧𧒄嚗㇊ITR<EFBFBD><EFBFBD>嚗?
  靽萘<EFBFBD><EFBFBD>園𡢿: 7憭抬<EFBFBD><EFBFBD>滩晶嚗?
  <EFBFBD><EFBFBD>園𡢿: <EFBFBD>峕膥2:00-4:00

<EFBFBD>见𢆡敹怎<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿𨅯<EFBFBD>嚗?
  - Schema<EFBFBD>䀹凒<EFBFBD>?
  - 憭抒<EFBFBD><EFBFBD><EFBFBD>蝥批<EFBFBD>
  - <EFBFBD>𣳇膄憭折<EFBFBD><EFBFBD>唳旿<EFBFBD>?
  - 靽萘<EFBFBD>30-60憭?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  <EFBFBD>?<3F>園𡢿<E59C92><EFBFBD>憭㵪<E686AD>PITR嚗?
  <EFBFBD>?<3F><EFBFBD>憭滚<E686AD>隞餅<E99A9E>蝘?
  <EFBFBD>?憭<>遢摮睃<E691AE><E79D83>汰SS

6. 撣貉<E692A3><E8B289><EFBFBD>

<EFBFBD><EFBFBD>1: 撖澆枂<E6BE86><EFBFBD>蝷箸<E89DB7><E7AEB8>𣂷<EFBFBD>頞?

*<EFBFBD><EFBFBD>𠶖嚗?

pg_dump: error: permission denied for table xxx

*<EFBFBD><EFBFBD>嚗? 雿輻鍂<E8BCBB><E98D82><EFBFBD>瑟瓷<E7919F>㕑雲憭<E99BB2><E686AD><EFBFBD>?

*<EFBFBD><EFBFBD>嚗?

# 雿輻鍂頞<E98D82><EFBFBD><EFBFBD>postgres
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research ...

# <20><EFBFBD><E494B6>舀芦<E88880>𡁶鍂<F0A181B6>?

<EFBFBD><EFBFBD>2: 撖澆<E69296><E6BE86><EFBFBD><E59789><EFBFBD><E4BAA5>?

*<EFBFBD><EFBFBD>𠶖嚗?

psql: error: connection timed out

*<EFBFBD><EFBFBD>嚗?

  1. 憭𣇉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  2. <EFBFBD><EFBFBD><EFBFBD>閙𧊋<EFBFBD>滨蔭
  3. 蝵𤑳<EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD>埝䰻甇仿炊嚗?

# 1. 蝖株恕憭𣇉<E686AD><F0A38789><EFBFBD>撌脣<E6928C><E884A3>?
# RDS<44><EFBFBD><E689B9>?> <20>唳旿摨栞<E691A8><E6A09E>?> <20><EFBFBD>憭𣇉<E686AD><F0A38789><EFBFBD>

# 2. 蝖株恕<E6A0AA><EFBFBD><E8B3A2><EFBFBD>蝵?
# RDS<44><EFBFBD><E689B9>?> <20>唳旿摰匧<E691B0><E58CA7>?> <20><EFBFBD><E8B3A2>閗挽蝵?
# 摨磰砲<E7A3B0><E7A0B2>鉄 0.0.0.0/0嚗<30><EFBFBD><EFBFBD><E5A19A><EFBFBD><E7A2B6><EFBFBD><EFBFBD>蝵飡P

# 3. 瘚贝<E7989A>蝵𤑳<E89DB5>餈鮋<E9A488>𡁏<EFBFBD>?
ping pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com

# 4. 瘚贝<E7989A>蝡臬藁餈鮋<E9A488>𡁏<EFBFBD>?
Test-NetConnection -ComputerName pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com -Port 5432

<EFBFBD><EFBFBD>3: 撖澆<E69296><E6BE86><EFBFBD>蝷箸㺭<E7AEB8><EFBFBD>銝滚<E98A9D><E6BB9A>?

*<EFBFBD><EFBFBD>𠶖嚗?

psql: error: database "ai_clinical_research" does not exist

*<EFBFBD><EFBFBD>嚗? 敹䁅扇<E48185>𥕦遣<F0A595A6>唳旿摨?

*<EFBFBD><EFBFBD>嚗?

# <20><><EFBFBD>撱箸㺭<E7AEB8><EFBFBD>
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d postgres `
  -c "CREATE DATABASE ai_clinical_research WITH ENCODING='UTF8';"

# <20><EFBFBD><E59785>滚紡<E6BB9A>?

<EFBFBD><EFBFBD>4: 撖澆<E69296><E6BE86>簵g-boss銵函撩憭?

*<EFBFBD><EFBFBD>𠶖嚗?

backend<EFBFBD>臬𢆡<EFBFBD><EFBFBD><EFBFBD>曄內:
Error: relation "platform_schema.job" does not exist

*<EFBFBD><EFBFBD>嚗? 撖澆枂<E6BE86>嗆𧊋<E59786><F0A78A8B>鉄pg-boss銵?

*<EFBFBD>埝䰻嚗?

# 1. 璉<><E79289>亙紡<E4BA99><EFBFBD>SQL<51><4C>
Get-Content rds_init_*.sql | Select-String "CREATE TABLE.*job"

# 摨磰砲<E7A3B0><EFBFBD>:
# CREATE TABLE platform_schema.job ...
# CREATE TABLE platform_schema.queue ...
# 蝑?銝芾”

# 2. 憒<><E68692>瘝⊥<E7989D>嚗屸<E59A97><E5B1B8>啣紡<E595A3>?
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research --format=plain --no-owner --no-acl > rds_init_new.sql

# 3. <20>齿鰵撖澆<E69296>

*<EFBFBD>俈嚗?

蝖桐<EFBFBD>雿輻鍂甇<EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏𦶢隞?
  <EFBFBD>?雿輻鍂 pg_dump嚗<70><EFBFBD>箸㟲銝芣㺭<E88AA3><EFBFBD>嚗?
  <EFBFBD>?銝滩<E98A9D><E6BBA9>?prisma migrate嚗<65>蘨撖澆枂Prisma摰帋<E691B0><E5B88B><EFBFBD>”嚗?

<EFBFBD><EFBFBD>5: 撖<><E69296>銝剔<E98A9D><E58994><EFBFBD>摮㛖泵撖潸稲餈墧𦻖憭梯揖

*<EFBFBD><EFBFBD>𠶖嚗?

backend<EFBFBD>臬𢆡憭梯揖:
Error: password authentication failed for user "airesearch"

*<EFBFBD><EFBFBD>嚗? DATABASE_URL銝剔<E98A9D><EFBFBD><E69296><EFBFBD>芣迤蝖株蓮銋?

*<EFBFBD><EFBFBD>嚗?

# <20>躰秤蝷箔<E89DB7>嚗㇀ <20>芾蓮銋㚁<E98A8B>
DATABASE_URL=postgresql://airesearch:Xibahe@fengzhibo117@host:5432/db

# 甇<>蝷箔<E89DB7>嚗㇀ 頧砌<E9A0A7>銝?%40嚗?
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@host:5432/db

*URL蝻𣇉<EFBFBD>撌亙<EFBFBD>嚗?

// <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E689B9><EFBFBD>銵?
encodeURIComponent("Xibahe@fengzhibo117")
// 颲枏枂: Xibahe%40fengzhibo117

<EFBFBD><EFBFBD>6: SAE摨𠉛鍂<F0A0899B><EFBFBD>餈墧𦻖RDS

*<EFBFBD><EFBFBD>𠶖嚗?

SAE<EFBFBD><EFBFBD><EFBFBD>曄內:
connection to server failed: Connection timed out

*<EFBFBD><EFBFBD>嚗?

  1. 雿輻鍂鈭<EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣳇膄嚗?
  2. <EFBFBD><EFBFBD><EFBFBD>閙𧊋<EFBFBD><EFBFBD>鉄VPC蝵烐挾
  3. SAE<EFBFBD>朙DS銝滚銁<EFBFBD><EFBFBD>VPC

*<EFBFBD>埝䰻甇仿炊嚗?

1. 蝖株恕雿輻鍂<E8BCBB><E98D82><EFBFBD><EFBFBD><EFBFBD>:
   <EFBFBD>?pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com嚗<6D><E59A97>蝵𡢅<E89DB5>
   <EFBFBD>?pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com嚗<6D><E59A97>蝵𡢅<E89DB5>撌脣<E6928C><E884A3><EFBFBD>

2. 蝖株恕<E6A0AA><EFBFBD><E8B3A2><EFBFBD>蝵?
   RDS<EFBFBD><EFBFBD><EFBFBD>?> <20>唳旿摰匧<E691B0><E58CA7>?> <20><EFBFBD><E8B3A2>閗挽蝵?
   摨磰砲<EFBFBD><EFBFBD>: 172.17.0.0/16

3. 蝖株恕VPC銝<43><E98A9D>?
   - RDS VPC: vpc-2ze055cptkew9c38w4r06
   - SAE VPC: 摨磰砲<EFBFBD><EFBFBD>
   - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SAE<EFBFBD><EFBFBD><EFBFBD>?> 摨𠉛鍂霂行<E99C82> > 蝵𤑳<E89DB5><F0A491B3>滨蔭

4. 蝖株恕SAE<41><EFBFBD><E887AC><EFBFBD>:
   DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
   瘜冽<EFBFBD>: 銝滩<EFBFBD><EFBFBD>?-ko <20>𡒊<EFBFBD>

7. <20><EFBFBD><E5A2A7><EFBFBD>

7.1 <20><EFBFBD><E5A2A7>箸艶

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>皛𡁶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  - 撖澆<EFBFBD><EFBFBD>𤾸<EFBFBD><EFBFBD>唳㺭<EFBFBD><EFBFBD>摰峕㟲
  - 撖澆<EFBFBD><EFBFBD><EFBFBD>銝剜鱏
  - <EFBFBD>唳旿撉諹<EFBFBD>憭梯揖
  - 摨𠉛鍂餈墧𦻖撘<EFBFBD>

7.2 <20><EFBFBD>甇仿炊

# <20><EFBFBD>A: <20>𣳇膄<F0A3B387>唳旿摨㯄<E691A8><E3AF84>啣紡<E595A3><EFBFBD><E4BC90><EFBFBD>嚗?

# 1. 餈墧𦻖<E5A2A7>訌DS
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h pgm-2zex1m2y3r23hdn5ko.pg.rds.aliyuncs.com `
  -p 5432 `
  -U airesearch `
  -d postgres

# 2. 蝏<><EFBFBD><E8BFAB><EFBFBD><EFBFBD><E39591>?
SELECT pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = 'ai_clinical_research' AND pid <> pg_backend_pid();

# 3. <20>𣳇膄<F0A3B387>唳旿摨?
DROP DATABASE ai_clinical_research;

# 4. <20>齿鰵<E9BDBF>𥕦遣撟嗅紡<E59785>?
CREATE DATABASE ai_clinical_research WITH ENCODING='UTF8';
\q

# 5. <20>齿鰵撖澆<E69296>
Get-Content rds_init_*.sql | docker exec -i -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql -h ... -d ai_clinical_research
# <20><EFBFBD>B: 雿輻鍂RDS敹怎<E695B9><E6808E><EFBFBD><EFBFBD><E59A97><EFBFBD>𨅯<EFBFBD>撱箔<E692B1>敹怎<E695B9>嚗?

# 1. <20><EFBFBD>RDS<44><EFBFBD><E689B9>?
# 2. 憭<><EFBFBD><EFBFBD> > 憭<><EFBFBD>𡑒”
# 3. <20><EFBFBD>撖澆<E69296><E6BE86><EFBFBD>敹怎<E695B9>
# 4. <20>孵稬<E5ADB5><EFBFBD>憭溻<E686AD>?
# 5. <20>㗇𥋘<E39787><EFBFBD><EFBCB7><EFBFBD>:
#    - <20><EFBFBD>隞賡<E99A9E><E8B3A1><EFBFBD><EFBFBD><E59A97>憭滚<E686AD>敹怎<E695B9><E6808E>園𡢿<E59C92><EFBFBD>
#    - <20>㗇𧒄<E39787><EFBFBD><E6B8A1><EFBFBD>嚗㇊ITR嚗峕<E59A97>憭滚<E686AD>隞餅<E99A9E><E9A485>園𡢿嚗?
# 6. 蝖株恕<E6A0AA><EFBFBD>

7.3 <20><EFBFBD>撉諹<E69289>

# 撉諹<E69289><E8ABB9><EFBFBD><E5A2A7>𡒊<EFBFBD><F0A1928A>唳旿
docker exec -e PGPASSWORD="Xibahe@fengzhibo117" ai-clinical-postgres psql `
  -h ... `
  -d ai_clinical_research `
  -c "SELECT schemaname, COUNT(*) FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') GROUP BY schemaname;"

8. <20><>雿喳<E99BBF>頝?

8.1 <20>函蔡<E587BD><EFBFBD>憭?

<EFBFBD>𡢅<EFBFBD> <20><><EFBFBD><EFBFBD><E79289><EFBFBD><E4BAA4>?
  1. <20>砍𧑐<E7A08D>唳旿摨枏歇憭<E6AD87>
  2. RDS摰硺<E691B0>撌脣<E6928C>撱箏僎<E7AE8F>滨蔭摰峕<E691B0>
  3. VPC蝵𤑳<E89DB5>撌脰<E6928C><E884B0>?
  4. <20><EFBFBD><E8B3A2>訫歇<E8A8AB>滨蔭嚗ĀPC蝵烐挾嚗?
  5. <20>唳旿摨梶鍂<E6A2B6><EFBFBD><EFBFBD><E69296>撌脰扇敶?
  6. <20>嗅躹撌脰挽蝵殷<E89DB5>Asia/Shanghai嚗?
  7. <20>芸𢆡憭<F0A286A1>遢撌脣<E6928C><E884A3>?

<EFBFBD>𡢅<EFBFBD> <20>園𡢿蝒堒藁<E5A092>㗇𥋘:
  - 銝𡁜𦛚雿𤾸陸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝?1<><EFBFBD>嚗?
  - <EFBFBD><EFBFBD>頞喳<EFBFBD><EFBFBD>園𡢿嚗?0-60<36><30><EFBFBD>嚗?
  - <EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>函瑪<EFBFBD><EFBFBD>

8.2 <20><EFBFBD><EFBFBD><E9A488>銝?

<EFBFBD>𡢅<EFBFBD> <20><EFBFBD><EFBFBD><E996AB>:
  1. <20>鞉郊<E99E89><EFBFBD>嚗䔶<E59A97><EFBFBD>歲甇仿炊
  2. 瘥𤩺郊撉諹<E69289>蝏𤘪<E89D8F><F0A498AA>滨誧蝏?
  3. 霈啣<E99C88>瘥𤩺郊<F0A4A9BA><E9838A><EFBFBD><EFBFBD><EFBFBD><E7AE8F>園𡢿
  4. <20><><EFBFBD><EFBFBD>躰秤蝡见朖<E8A781>𨀣迫<F0A880A3>埝䰻
  5. 銝滩<E98A9D><E6BBA9>峕𧒄<E5B395><EFBFBD>憭帋葵<E5B88B><EFBFBD>

<EFBFBD>𡢅<EFBFBD> 摰匧<E691B0><E58CA7><EFBFBD>:
  1. 憭𣇉<E686AD>霈輸䔮<E8BCB8><E494AE>撠誩<E692A0>嚗?0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  2. 撖澆<E69296>摰峕<E691B0>蝡见朖<E8A781>喲𡡒憭𣇉<E686AD>
  3. 銝滩<E98A9D><E6BBA9><EFBFBD><E585B8><EFBFBD>蝏𨀣<E89D8F>雿?
  4. 銝滩<E98A9D><EFBFBD>蠧餈墧𦻖靽⊥<E99DBD>

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

<EFBFBD>𡢅<EFBFBD> <20><EFBFBD>撉諹<E69289>:
  1. Schema<6D>諹”<E8ABB9><EFBFBD><EFBFBD>
  2. <20>唳旿<E594B3><EFBFBD><E8AD8D>砍𧑐銝<F0A79190><E98A9D>?
  3. pg-boss銵典<E98AB5><E585B8>?
  4. 蝝<E89D9D><EFBCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A180>?
  5. backend<6E>賣迤撣貉<E692A3><E8B289>?
  6. 摨𠉛鍂<F0A0899B><EFBFBD><EFBFBD>

<EFBFBD>𡢅<EFBFBD> <20><EFBFBD>撉諹<E69289>:
  1. 餈墧𦻖撱嗉<E692B1> < 50ms嚗ĀPC<50><43><EFBFBD>嚗?
  2. <20>亥砭<E4BAA5><EFBFBD><E6BB9A>園𡢿甇<F0A1A2BF>
  3. RDS CPU雿輻鍂<E8BCBB>?< 30%
  4. 餈墧𦻖<E5A2A7>?< 100

<EFBFBD>𡢅<EFBFBD> 摰匧<E691B0>撉諹<E69289>:
  1. 憭𣇉<E686AD><F0A38789><EFBFBD>撌脣<E6928C><E884A3>?<3F>?
  2. <20><EFBFBD><E8B3A2>訫蘨<E8A8AB>动PC蝵烐挾 <20>?
  3. 撖<><E69296>撘箏漲擃?<3F>?
  4. <20>芸𢆡憭<F0A286A1>遢撌脣<E6928C><E884A3>?<3F>?

8.4 <20>烐綉<E78390>𡃏郎

<EFBFBD>𡢅<EFBFBD> <20>滨蔭<E6BBA8>烐綉:
  1. RDS餈墧𦻖<E5A2A7><EFBFBD>霅佗<E99C85>>300嚗?
  2. RDS CPU<50>𡃏郎嚗?70%嚗?
  3. RDS蝤<53><E89DA4><EFBFBD>𡃏郎嚗?80%嚗?
  4. <20>䰻霂<E99C82>霅佗<E99C85>>1蝘𡜐<E89D98>
  5. 憭<>遢憭梯揖<E6A2AF>𡃏郎

<EFBFBD>𡢅<EFBFBD> <20>亙虜撌⊥<E6928C>:
  1. 瘥誩予璉<E4BA88><E79289>充DS<44>烐綉
  2. 瘥誩𪂹<E8AAA9><EFBFBD><E4BAA6>䰻霂𠯫敹?
  3. 瘥𤩺<E798A5>撉諹<E69289><EFBFBD><EFBFBD>舐鍂<E88890>?
  4. 瘥誩迤摨行<E691A8>憭齿<E686AD>蝏?

8.5 <20><>﹝蝏湔擪

<EFBFBD>𡢅<EFBFBD> <20>湔鰵<E6B994><E9B0B5>:
  1. 霈啣<E99C88>摰鮋<E691B0><E9AE8B><EFBFBD><E689AF>園𡢿
  2. 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䔮憸睃<E686B8><EFBFBD><E996AB><EFBFBD><EFBFBD>
  3. <20>湔鰵餈墧𦻖靽⊥<E99DBD>
  4. 銵亙<E98AB5><E4BA99><EFBFBD><E5AF9E><EFBFBD><EFBFBD><EFBFBD><E686AD>

<EFBFBD>𡢅<EFBFBD> <20><EFBFBD>瘝㗇<E7989D>:
  1. <20><EFBFBD>蝏誯<E89D8F><E8AAAF>躰悌
  2. 隡睃<E99AA1><E79D83>函蔡瘚<E894A1><E7989A>
  3. <20>寡悌<E5AFA1><EFBFBD><EFBD81>𣂼<EFBFBD>
  4. 撱箇<E692B1>FAQ

9. <20><><EFBFBD>

9.1 摰峕㟲璉<E39FB2><E79289><EFBFBD><E4BAA4>?

<EFBFBD>函蔡<EFBFBD>齿<EFBFBD><EFBFBD>?(Before):
  <EFBFBD>?<3F>砍𧑐<E7A08D>唳旿摨栞<E691A8>銵峕迤撣?
  <EFBFBD>?Docker Desktop餈鞱<E9A488><EFBFBD>
  <EFBFBD>?RDS摰硺<E691B0>撌脣<E6928C>撱?
  <EFBFBD>?VPC<50>䔶漱<E494B6>㦤撌脤<E6928C>蝵?
  <EFBFBD>?<3F><EFBFBD><E8B3A2>訫歇<E8A8AB>滨蔭嚗?72.17.0.0/16嚗?
  <EFBFBD>?<3F>唳旿摨梶鍂<E6A2B6>瑕歇<E79195>𥕦遣嚗Òiresearch嚗?
  <EFBFBD>?<3F>嗅躹撌脰挽蝵殷<E89DB5>Asia/Shanghai嚗?
  <EFBFBD>?<3F>芸𢆡憭<F0A286A1>遢撌脣<E6928C><E884A3>?

<EFBFBD>函蔡餈<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?(During):
  <EFBFBD>?撖澆枂<E6BE86><E69E82>辣憭批<E686AD><EFBFBD>虜嚗?0-100 MB嚗?
  <EFBFBD>?憭𣇉<E686AD><F0A38789><EFBFBD><E595A3>唾窈<E594BE>𣂼<EFBFBD>
  <EFBFBD>?<3F><EFBFBD><E8B3A2>蓥葩<E893A5><EFBFBD>蝵殷<E89DB5>0.0.0.0/0嚗?
  <EFBFBD>?<3F>唳旿摨枏<E691A8>撱箸<E692B1><E7AEB8>?
  <EFBFBD>?<3F>唳旿撖澆<E69296>摰峕<E691B0><EFBFBD><E59A97><EFBFBD>躰秤嚗?
  <EFBFBD>?憭𣇉<E686AD><F0A38789><EFBFBD>撌脣<E6928C><E884A3>?潃鐥<E6BD83>潃?

<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>?(After):
  <EFBFBD>?10銝杵chema<6D><EFBFBD>摮睃銁
  <EFBFBD>?34銝芾”<E88ABE><EFBFBD>摮睃銁
  <EFBFBD>?pg-boss<73>?銝芾”摮睃銁
  <EFBFBD>?<3F><EFBFBD><E586BD>唳旿摰峕㟲
  <EFBFBD>?蝝<E89D9D>摰峕㟲
  <EFBFBD>?憭㚚睸摰峕㟲
  <EFBFBD>?backend<6E><EFBFBD><E8B3AA>充DS
  <EFBFBD>?摨𠉛鍂<F0A0899B><EFBFBD><EFBFBD>
  <EFBFBD>?憭𣇉<E686AD>霈輸䔮撌脣<E6928C><E884A3>?潃鐥<E6BD83>潃?

9.2 敹恍<E695B9><EFBFBD><E7AC94>?

餈墧𦻖靽⊥<EFBFBD>

RDS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD>唳旿摨枏<EFBFBD>: ai_clinical_research
<EFBFBD><EFBFBD><EFBFBD>? airesearch
<EFBFBD><EFBFBD>: Xibahe@fengzhibo117

DATABASE_URL:
postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=10&pool_timeout=10

撣貊鍂<EFBFBD>賭誘

# 撖澆枂<E6BE86>唳旿摨?
docker exec ai-clinical-postgres pg_dump -U postgres -d ai_clinical_research --no-owner --no-acl > backup.sql

# 撖澆<E69296><E6BE86>唳旿摨?
Get-Content backup.sql | docker exec -i -e PGPASSWORD="撖<><E69296>" ai-clinical-postgres psql -h RDS<EFBFBD><EFBFBD> -U airesearch -d ai_clinical_research

# 璉<><E79289>兄chema
docker exec -e PGPASSWORD="撖<><E69296>" ai-clinical-postgres psql -h RDS<EFBFBD><EFBFBD> -U airesearch -d ai_clinical_research -c "\dn"

# 璉<><E79289>亥”
docker exec -e PGPASSWORD="撖<><E69296>" ai-clinical-postgres psql -h RDS<EFBFBD><EFBFBD> -U airesearch -d ai_clinical_research -c "\dt platform_schema.*"

# 璉<><E79289>交㺭<E4BAA4><EFBFBD>
docker exec -e PGPASSWORD="撖<><E69296>" ai-clinical-postgres psql -h RDS<EFBFBD><EFBFBD> -U airesearch -d ai_clinical_research -c "SELECT COUNT(*) FROM platform_schema.users;"

<EFBFBD><EFBFBD> <20><EFBFBD><E8A9A8><EFBFBD>


<EFBFBD><EFBFBD> <20>䀹凒<E480B9><E58792>

<EFBFBD><EFBFBD>𧋦 <EFBFBD><EFBFBD> 雿𡏭<EFBFBD>? <EFBFBD>䀹凒霂湔<EFBFBD>
v1.0 2025-12-24 AI<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗<EFBFBD>抅鈭𤾸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脩<EFBFBD>撉?

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

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗諹窈璉<EFBFBD><EFBFBD><EFBFBD>

  1. <EFBFBD>?<3F><EFBFBD><EFBFBD><E78DA2><EFBFBD><EFBFBD>虜閫<E8999C>䔮憸塩<E686B8><EFBFBD><E6BBA8>?
  2. <EFBFBD>?RDS摰墧𧒄<E5A2A7><EFBFBD>嚗㇌DS<44><EFBFBD><E689B9>?> <20><EFBFBD>蝞∠<E89D9E>嚗?
  3. <EFBFBD>?backend摨𠉛鍂<F0A0899B><EFBFBD>嚗𠄎AE<41><EFBFBD><E689B9>?> <20><EFBFBD>嚗?
  4. <EFBFBD>?PostgreSQL<51>函蔡蝑𣇉裦<F0A38789><EFBFBD><E8A9A8><EFBFBD>

<EFBFBD><EFBFBD>﹝蝏𤘪<EFBFBD>

蟡嗪<EFBFBD>蝵脤◇<EFBFBD><EFBFBD><EFBFBD><EFBFBD>