feat: backup architecture docs, source code, and scripts

This commit is contained in:
Warren
2026-04-25 17:15:45 +08:00
parent 59809dae1f
commit 1f84e5469f
368 changed files with 146329 additions and 261 deletions
+195
View File
@@ -0,0 +1,195 @@
---
document_type: "test_doc"
service: "MOMENTRY_CORE"
title: "Release 到正式版分析"
date: "2026-03-31"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
- "到正式版分析"
- "release"
ai_query_hints:
- "查詢 Release 到正式版分析 的內容"
- "Release 到正式版分析 的主要目的是什麼?"
- "如何操作或實施 Release 到正式版分析?"
---
# Release 到正式版分析
| 項目 | 內容 |
|------|------|
| 建立者 | Warren |
| 建立時間 | 2026-03-31 |
| 文檔版本 | V1.0 |
---
## 當前狀態摘要
### 已完成的隔離功能
| 功能 | 狀態 | 說明 |
|------|------|------|
| Redis 隔離 | ✅ 完成 | `momentry:` vs `momentry_dev:` prefix |
| MongoDB 隔離 | ✅ 完成 | `momentry` vs `momentry_dev` database |
| Qdrant 隔離 | ✅ 完成 | `momentry_rule1` vs `momentry_dev_rule1` collection |
| PostgreSQL Schema 隔離 | 🔶 部分完成 | schema 會在啟動時創建 tables,但運行時有連接池問題 |
### 代碼變更清單
| 文件 | 變更 |
|------|------|
| `.env.development` | 新增 `DATABASE_SCHEMA=dev`, `MONGODB_DATABASE=momentry_dev`, `QDRANT_COLLECTION=momentry_dev_rule1` |
| `src/core/config.rs` | 新增 `DATABASE_SCHEMA`, `MONGODB_DATABASE`, `QDRANT_COLLECTION` 靜態配置 |
| `src/core/db/postgres_db.rs` | 新增 schema 初始化邏輯(`after_connect` 鉤子)|
| `src/core/db/mongodb_db.rs` | 新增 `database` 字段,使用配置 |
---
## Release 所需動作
### 🔴 阻塞問題
#### 1. PostgreSQL Schema 隔離修復
**問題**: 運行時查詢使用 `public` schema 而非 `dev` schema
**狀態**: 🔶 需要修復
**修復方案**: 採用「明確 Schema 前綴」方案
- 預估工作量: 3-4 小時
- 影響範圍: ~48 個 SQL 查詢函數
**詳細計畫**: 參考 `docs_v1.0/TESTING/POSTGRESQL_ISOLATION_FIX_PLAN.md`
---
### 🟡 必要動作(Release 前必須完成)
#### 2. 添加 Production 環境變數到 `.env`
**當前 `.env` 缺少必要變數**:
```bash
# 建議添加到 .env
DATABASE_SCHEMA=public # 明確指定 production 使用 public schema
MONGODB_DATABASE=momentry # 明確指定 production 使用 momentry
```
#### 3. 完整測試覆蓋
| 測試項目 | 狀態 |
|----------|------|
| PostgreSQL Schema 隔離 | 🔶 需修復後重新測試 |
| MongoDB Database 隔離 | ✅ 需重新測試 |
| Qdrant Collection 隔離 | ✅ 需重新測試 |
| Redis Prefix 隔離 | ✅ 需重新測試 |
| API 功能正常 | ✅ 需重新測試 |
#### 4. Code Review
- [ ] `cargo clippy --lib` 通過
- [ ] `cargo test --lib` 通過
- [ ] `cargo fmt -- --check` 通過
---
### 🟢 已確認無需動作
| 項目 | 說明 |
|------|------|
| PostgreSQL 資料庫 | 無需變更 - 繼續使用 `momentry` 資料庫 |
| MongoDB | 無需變更 - 繼續使用 `momentry` database |
| Qdrant | 無需變更 - 繼續使用 `momentry_rule1` collection |
| Redis | 無需變更 - prefix 已正確配置 |
| File System | 無需變更 - output 目錄已正確配置 |
---
## Release 檢查清單
### Release 前檢查
| # | 項目 | 狀態 | 負責人 |
|---|------|------|--------|
| 1 | PostgreSQL Schema 隔離修復 | 🔶 TODO | Developer |
| 2 | 更新 `.env` 配置 | 🔶 TODO | DevOps |
| 3 | 執行完整隔離測試 | 🔶 TODO | QA |
| 4 | Code Review (clippy/test/fmt) | ✅ N/A | CI |
| 5 | 更新文件版本 | 🔶 TODO | Docs |
### Release 後驗證
| # | 項目 | 狀態 |
|---|------|------|
| 1 | Production Server 啟動正常 | - |
| 2 | Playground Server 啟動正常 | - |
| 3 | 數據寫入正確 schema | - |
| 4 | 兩環境數據完全隔離 | - |
---
## 風險評估
### Release 風險矩陣
| 風險 | 概率 | 影響 | 等級 | 緩解措施 |
|------|------|------|------|----------|
| PostgreSQL Schema 隔離失敗 | 高 | 高 | 🔴 | 修復後再 Release |
| 向量數據混入 | 低 | 高 | 🟡 | Qdrant 已隔離 |
| Redis 數據混入 | 低 | 中 | 🟢 | Prefix 已隔離 |
| API 功能異常 | 低 | 高 | 🟡 | 完整測試覆蓋 |
### 不建議立即 Release 的原因
1. **PostgreSQL Schema 隔離不完全**: 這是核心問題
- 可能導致 Playground 測試數據污染 Production 數據
- 違背隔離架構設計目標
2. **未經完整測試驗證**:
- 現有測試有 44% 失敗率
- 需要修復後重新測試
---
## Release 決策建議
### 選項 A: 立即 Release(不建議)
**條件**:
- 忽略 Schema 隔離問題
- 接受測試失敗
**風險**:
- 數據污染風險
- 違背設計目標
**不建議理由**:
- Playground 可能污染 Production 數據
---
### 選項 B: 修復後 Release(建議)
**條件**:
- 完成 PostgreSQL Schema 隔離修復
- 通過完整測試驗證
**時間**:
- 修復: 3-4 小時
- 測試: 1-2 小時
- 總計: ~6 小時
**優點**:
- 確保數據隔離正確
- 符合設計目標
- 測試通過率 100%
---
## 版本資訊
- 版本: V1.0
- 建立日期: 2026-03-31