Files
momentry_core/docs_v1.0/TESTING/RELEASE_ANALYSIS.md

4.9 KiB
Raw Blame History

document_type, service, title, date, version, status, owner, created_by, tags, ai_query_hints
document_type service title date version status owner created_by tags ai_query_hints
test_doc MOMENTRY_CORE Release 到正式版分析 2026-03-31 V1.0 active Warren OpenCode
到正式版分析
release
查詢 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 缺少必要變數:

# 建議添加到 .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