deploy: Complete 0126-27 deployment - database upgrade, services update, code recovery

Major Changes:
- Database: Install pg_bigm/pgvector plugins, create test database
- Python service: v1.0 -> v1.1, add pymupdf4llm/openpyxl/pypandoc
- Node.js backend: v1.3 -> v1.7, fix pino-pretty and ES Module imports
- Frontend: v1.2 -> v1.3, skip TypeScript check for deployment
- Code recovery: Restore empty files from local backup

Technical Fixes:
- Fix pino-pretty error in production (conditional loading)
- Fix ES Module import paths (add .js extensions)
- Fix OSSAdapter TypeScript errors
- Update Prisma Schema (63 models, 16 schemas)
- Update environment variables (DATABASE_URL, EXTRACTION_SERVICE_URL, OSS)
- Remove deprecated variables (REDIS_URL, DIFY_API_URL, DIFY_API_KEY)

Documentation:
- Create 0126 deployment folder with 8 documents
- Update database development standards v2.0
- Update SAE deployment status records

Deployment Status:
- PostgreSQL: ai_clinical_research_test with plugins
- Python: v1.1 @ 172.17.173.84:8000
- Backend: v1.7 @ 172.17.173.89:3001
- Frontend: v1.3 @ 172.17.173.90:80

Tested: All services running successfully on SAE
This commit is contained in:
2026-01-27 08:13:27 +08:00
parent 01a17f1e6f
commit 2481b786d8
318 changed files with 5290 additions and 3216 deletions

View File

@@ -92,6 +92,8 @@ export async function moduleRoutes(fastify: FastifyInstance) {

View File

@@ -122,6 +122,8 @@ export interface PaginatedResponse<T> {

View File

@@ -172,3 +172,5 @@ export const ROLE_DISPLAY_NAMES: Record<UserRole, string> = {

View File

@@ -183,3 +183,5 @@ export function createLLMServiceAdapter(): LLMServiceInterface {

View File

@@ -285,3 +285,5 @@ export class PromptBuilder {

View File

@@ -295,3 +295,5 @@ export class ProtocolExportService {
}
}

View File

@@ -381,3 +381,5 @@ export interface PromptRenderContext {

View File

@@ -247,3 +247,5 @@ async function matchIntent(query: string): Promise<{

View File

@@ -101,3 +101,5 @@ export async function uploadAttachment(

View File

@@ -30,3 +30,5 @@ export { aiaRoutes };

View File

@@ -371,6 +371,8 @@ runTests().catch((error) => {

View File

@@ -350,6 +350,8 @@ Content-Type: application/json

View File

@@ -286,6 +286,8 @@ export const conflictDetectionService = new ConflictDetectionService();

View File

@@ -236,6 +236,8 @@ curl -X POST http://localhost:3000/api/v1/dc/tool-c/test/execute \

View File

@@ -290,6 +290,8 @@ export const streamAIController = new StreamAIController();

View File

@@ -199,6 +199,8 @@ logger.info('[SessionMemory] 会话记忆管理器已启动', {

View File

@@ -133,6 +133,8 @@ checkTableStructure();

View File

@@ -120,6 +120,8 @@ checkProjectConfig().catch(console.error);

View File

@@ -102,6 +102,8 @@ main();

View File

@@ -559,6 +559,8 @@ URL: https://iit.xunzhengyixue.com/api/v1/iit/patient-wechat/callback

View File

@@ -194,6 +194,8 @@ console.log('');

View File

@@ -511,6 +511,8 @@ export const patientWechatService = new PatientWechatService();

View File

@@ -156,6 +156,8 @@ testDifyIntegration().catch(error => {

View File

@@ -185,6 +185,8 @@ testIitDatabase()

View File

@@ -171,6 +171,8 @@ if (hasError) {

View File

@@ -197,6 +197,8 @@ async function testUrlVerification() {

View File

@@ -278,6 +278,8 @@ main().catch((error) => {

View File

@@ -162,6 +162,8 @@ Write-Host ""

View File

@@ -255,6 +255,8 @@ export interface CachedProtocolRules {

View File

@@ -68,6 +68,8 @@ export default async function healthRoutes(fastify: FastifyInstance) {

View File

@@ -146,6 +146,8 @@ Content-Type: application/json

View File

@@ -131,6 +131,8 @@ Write-Host " - 删除任务: DELETE $BaseUrl/api/v1/rvw/tasks/{taskId}" -Foregr

View File

@@ -45,6 +45,8 @@ export * from './services/utils.js';

View File

@@ -136,6 +136,8 @@ export function validateAgentSelection(agents: string[]): void {