Files
geMoldInsight/docs/topics/storage/STORAGE_SETUP.md
T
2026-09-02 18:18:42 +08:00

5.0 KiB
Raw Blame History

存储架构说明

文档定位:存储分层与数据流的专题说明文档。 本文主要解释 geMoldInsight 的存储架构,不作为当前部署入口或当前状态的权威说明。当前部署方式见 ../../DEPLOYMENT.md,当前状态见 ../../STATUS.md,总体架构见 ../../ARCHITECTURE.md。 其历史中的“本项目自行拉起 PostgreSQL / MinIO 并通过 python src/main.py 启动单体”的部分,已不再代表当前默认部署方式。

当前默认部署前提是:

  • PostgreSQL 由服务器已有服务提供
  • Redis 由服务器已有服务提供
  • RustFS / MinIO 兼容对象存储由服务器已有服务提供
  • 项目自身只部署:moldinsight / moldinsight-celery / inventory

如需查看当前部署方式,请优先参考:


架构概述

本项目采用 RustFS(S3兼容)对象存储 + PostgreSQL 元数据存储 的双层存储架构。

┌─────────────────────────────────────────────────────────────┐
│                  应用层 (moldinsight / inventory)            │
└──────────────────────┬──────────────────────────────────────┘
                       │
        ┌──────────────┴──────────────┐
        │                              │
┌───────▼────────┐        ┌─────────▼─────────┐
│   PostgreSQL    │        │     RustFS / S3   │
│   (元数据)      │        │   (对象存储)       │
│                │        │                  │
│ - users        │        │ - stp-files      │
│ - stp_files    │        │ - geometry       │
│ - geometry_data│        │ - mold-cavities │
│ - processing   │        │ - html-files     │
│ - logs         │        │ - user-files     │
└────────────────┘        └──────────────────┘

PostgreSQL 数据表(摘要)

用户管理

  • users - 用户信息
  • roles / permissions - 权限体系

moldinsight 相关

  • stp_files - STP 文件元数据
  • html_files - HTML 报告元数据
  • geometry_data - 几何分析数据
  • mold_cavity_data - 模具型腔数据
  • feature_detections - 特征检测结果
  • design_recommendations - 设计建议
  • processing_tasks - 处理任务记录
  • analysis_metrics - 分析指标

inventory 相关

  • products - 产品/物料
  • product_materials - BOM
  • inventory - 库存
  • stock_movements - 库存流水
  • purchase_orders / sales_orders - 订单
  • finance_transactions - 财务流水

RustFS / S3 存储桶

存储桶名称 用途 存储内容
moldinsight-stp-files STP/STEP 文件 用户上传的原始 3D 模型
moldinsight-geometry 几何结果 几何分析 JSON
moldinsight-mold-cavities 模具结果 模具设计 JSON
moldinsight-html HTML 报告 生成的 HTML 报告文件
moldinsight-user-files 用户文件 其他附件/用户文件

当前推荐初始化方式

1. 准备环境变量

cp .env.example .env
nano .env

确保以下变量指向服务器上已存在的真实服务:

DB_HOST=your-db-host
DB_PORT=5432
DB_NAME=moldinsight
DB_USER=moldinsight
DB_PASSWORD=change-me

REDIS_HOST=your-redis-host
REDIS_PORT=6379
REDIS_PASSWORD=

RUSTFS_ENDPOINT=http://your-storage-host:9000
RUSTFS_ACCESS_KEY=change-me
RUSTFS_SECRET_KEY=change-me

2. 初始化数据库

当前初始化入口参考:

3. 启动项目服务

当前推荐通过:

而不是继续使用历史单体 python src/main.py 作为默认方式。


监控与维护

对象存储

  • 检查对象存储服务可达性
  • 定期清理历史产物
  • 配置生命周期策略

PostgreSQL

  • 定期备份
  • 监控连接池与慢查询
  • 保持 Alembic 迁移链一致

故障排除

对象存储连接失败

  • 检查 RUSTFS_ENDPOINT
  • 检查 access key / secret key
  • 检查服务端口与网络策略

数据库连接失败

  • 检查 DB_HOST / DB_PORT
  • 检查数据库账号密码
  • 检查防火墙与白名单

文件上传失败

  • 检查对象存储可用性
  • 检查 Celery worker 是否运行
  • 检查 Redis 是否可达