feat: backup architecture docs, source code, and scripts
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user