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