--- 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