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

@@ -259,6 +259,8 @@ export async function logout(): Promise<void> {

View File

@@ -25,6 +25,8 @@ export * from './api';

View File

@@ -49,6 +49,8 @@ export async function fetchUserModules(): Promise<string[]> {

View File

@@ -132,3 +132,5 @@ export default ModulePermissionModal;

View File

@@ -208,3 +208,5 @@ export const TENANT_TYPE_NAMES: Record<TenantType, string> = {

View File

@@ -22,3 +22,5 @@ export { ChatWorkspace } from './ChatWorkspace';

View File

@@ -65,3 +65,5 @@ export const ActionCardComponent: React.FC<ActionCardProps> = ({ card }) => {

View File

@@ -51,3 +51,5 @@ function formatTime(date: Date): string {

View File

@@ -204,3 +204,5 @@ export const ResizableSplitPane: React.FC<ResizableSplitPaneProps> = ({
export default ResizableSplitPane;

View File

@@ -49,3 +49,5 @@ export const SyncButton: React.FC<SyncButtonProps> = ({ syncData, onSync }) => {

View File

@@ -11,3 +11,5 @@ export { ReflexionMessage } from './ReflexionMessage';

View File

@@ -7,3 +7,5 @@ export { useProtocolConversations } from './useProtocolConversations';

View File

@@ -9,3 +9,5 @@ export * from './hooks';

View File

@@ -580,6 +580,8 @@ export default FulltextDetailDrawer;

View File

@@ -173,6 +173,8 @@ export const useAssets = (activeTab: AssetTabType) => {

View File

@@ -163,6 +163,8 @@ export const useRecentTasks = () => {

View File

@@ -133,6 +133,8 @@ export function useSessionStatus({

View File

@@ -125,6 +125,8 @@ export interface DataStats {

View File

@@ -121,6 +121,8 @@ export type AssetTabType = 'all' | 'processed' | 'raw';

View File

@@ -308,6 +308,8 @@ export default KnowledgePage;

View File

@@ -63,6 +63,8 @@ export interface BatchTemplate {

View File

@@ -61,6 +61,8 @@ export default function BatchToolbar({ selectedCount, onRunBatch, onClearSelecti

View File

@@ -84,6 +84,8 @@ export default function FilterChips({ filters, counts, onFilterChange }: FilterC

View File

@@ -74,6 +74,8 @@ export default function Header({ onUpload }: HeaderProps) {

View File

@@ -128,6 +128,8 @@ export default function ReportDetail({ report, onBack }: ReportDetailProps) {

View File

@@ -56,6 +56,8 @@ export default function ScoreRing({ score, size = 'medium', showLabel = true }:

View File

@@ -91,6 +91,8 @@ export default function Sidebar({ currentView, onViewChange, onSettingsClick }:

View File

@@ -33,6 +33,8 @@ export { default as TaskDetail } from './TaskDetail';

View File

@@ -251,6 +251,8 @@

View File

@@ -352,6 +352,8 @@ export default TenantListPage;

View File

@@ -261,6 +261,8 @@ export async function fetchModuleList(): Promise<ModuleInfo[]> {

View File

@@ -483,3 +483,5 @@ export default AIStreamChat;

View File

@@ -183,3 +183,5 @@ export default ConversationList;

View File

@@ -35,3 +35,5 @@ export type {

View File

@@ -327,3 +327,5 @@ export default useAIStream;

View File

@@ -256,3 +256,5 @@ export default useConversations;

View File

@@ -76,6 +76,8 @@ export { default as Placeholder } from './Placeholder';

View File

@@ -56,6 +56,8 @@ interface ImportMeta {