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%)
26 KiB
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>
- <EFBFBD>函蔡璁<EFBFBD>膩
- [<5B>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>包(#2-<2D>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>?
- <EFBFBD>函蔡甇仿炊
- 撉諹<EFBFBD>瘚贝<EFBFBD>
- 摰匧<EFBFBD><EFBFBD>惩𤐄
- 撣貉<EFBFBD><EFBFBD>桅<EFBFBD>
- <EFBFBD>墧<EFBFBD><EFBFBD>寞<EFBFBD>
- [<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>唳旿+蝝W<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>X㦤撌脤<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>
- <EFBFBD>曉<EFBFBD>摰硺<EFBFBD>嚗䫤pgm-2zex1m2y3r23hdn5`
- <EFBFBD>孵稬摰硺<EFBFBD>ID嚗諹<EFBFBD><EFBFBD>亙<EFBFBD>靘贝祕<EFBFBD>?
- 撌虫儒<EFBFBD>𨅯<EFBFBD>嚗?<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>? <20>?<EFBFBD>唾窈憭𣇉<EFBFBD><EFBFBD>啣<EFBFBD>
- 蝡臬藁嚗䫤5432`嚗<><E59A97>霈歹<E99C88>
- <EFBFBD>孵稬 蝖桀<EFBFBD>
- 蝑匧<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>霂a䔮嚗?
<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>?蝝W<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: 霈a<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>蝝W<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>
-
*<EFBFBD>𧼮<EFBFBD>RDS<EFBFBD>批<EFBFBD><EFBFBD>?
- 摰硺<EFBFBD>霂行<EFBFBD>憿菟𢒰
-
*<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><EFBFBD>颯<EFBFBD>𣬚&摰𠾼<EFBFBD>?
-
*蝑匧<EFBFBD><EFBFBD>删<EFBFBD><EFBFBD>?
-
*蝖株恕<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>W<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>嚗?
- 憭𣇉<EFBFBD><EFBFBD>啣<EFBFBD><EFBFBD>芸<EFBFBD><EFBFBD>?
- <EFBFBD>賢<EFBFBD><EFBFBD>閙𧊋<EFBFBD>滨蔭
- 蝵𤑳<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>嚗?
- 雿輻鍂鈭<EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD>嚗<EFBFBD>歇<EFBFBD>𣳇膄嚗?
- <EFBFBD>賢<EFBFBD><EFBFBD>閙𧊋<EFBFBD><EFBFBD>鉄VPC蝵烐挾
- 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>W<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>𨅯<EFBFBD>撱箔<E692B1>敹怎<E695B9>嚗?
# 1. <20>餃<EFBFBD>RDS<44>批<EFBFBD><E689B9>?
# 2. 憭<>遢<EFBFBD>W<EFBFBD> > 憭<>遢<EFBFBD>𡑒”
# 3. <20>曉<EFBFBD>撖澆<E69296><E6BE86>滨<EFBFBD>敹怎<E695B9>
# 4. <20>孵稬<E5ADB5>峕<EFBFBD>憭溻<E686AD>?
# 5. <20>㗇𥋘<E39787>W<EFBFBD><EFBCB7>孵<EFBFBD>:
# - <20>匧<EFBFBD>隞賡<E99A9E><E8B3A1>W<EFBFBD>嚗<EFBFBD><E59A97>憭滚<E686AD>敹怎<E695B9><E6808E>園𡢿<E59C92>對<EFBFBD>
# - <20>㗇𧒄<E39787>渡<EFBFBD><E6B8A1>W<EFBFBD>嚗㇊ITR嚗峕<E59A97>憭滚<E686AD>隞餅<E99A9E><E9A485>園𡢿嚗?
# 6. 蝖株恕<E6A0AA>W<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>a<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. 蝝W<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>X䰻霂W<E99C82>霅佗<E99C85>>1蝘𡜐<E89D98>
5. 憭<>遢憭梯揖<E6A2AF>𡃏郎
<EFBFBD>𡢅<EFBFBD> <20>亙虜撌⊥<E6928C>:
1. 瘥誩予璉<E4BA88><E79289>充DS<44>烐綉
2. 瘥誩𪂹<E8AAA9>亦<EFBFBD><E4BAA6>X䰻霂X𠯫敹?
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>a<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>X㦤撌脤<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>?蝝W<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>嗆<EFBFBD><EFBFBD>餉<EFBFBD>
- 敹恍<EFBFBD>罸<EFBFBD>蝵淞OP
- PostgreSQL<EFBFBD>函蔡蝑𣇉裦<EFBFBD>詨<EFBFBD><EFBFBD>亙<EFBFBD>
- Node.js<6A>𡒊垢<F0A1928A>函蔡<E587BD><E894A1><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>
- <EFBFBD>?<3F>祆<EFBFBD>獢<EFBFBD><E78DA2><EFBFBD><EFBFBD>虜閫<E8999C>䔮憸塩<E686B8>滨<EFBFBD><E6BBA8>?
- <EFBFBD>?RDS摰墧𧒄<E5A2A7>亙<EFBFBD>嚗㇌DS<44>批<EFBFBD><E689B9>?> <20>亙<EFBFBD>蝞∠<E89D9E>嚗?
- <EFBFBD>?backend摨𠉛鍂<F0A0899B>亙<EFBFBD>嚗𠄎AE<41>批<EFBFBD><E689B9>?> <20>亙<EFBFBD>嚗?
- <EFBFBD>?PostgreSQL<51>函蔡蝑𣇉裦<F0A38789>詨<EFBFBD><E8A9A8>亙<EFBFBD>
<EFBFBD><EFBFBD>﹝蝏𤘪<EFBFBD>
蟡嗪<EFBFBD>蝵脤◇<EFBFBD>抬<EFBFBD><EFBFBD><EFBFBD>