Files
awoooi/packages/lewooogo-data
OG T 1576f2ab20 fix(db): eliminate SQLite brain-split, force PostgreSQL
Root cause: Worker used SQLITE_DATABASE_URL causing "no such table: incidents"
because each Pod had isolated SQLite file, not shared PostgreSQL.

Fixes:
- db/base.py: Use DATABASE_URL (PostgreSQL) instead of SQLITE_DATABASE_URL
- Added SQLite prohibition guard with logging
- Added pool_size and pool_pre_ping for production stability

New: packages/lewooogo-data PgMemoryProvider (Phase 6.4d)
- Episodic Memory implementation for PostgreSQL
- init_pg_engine() with auto table creation
- SQLite forbidden by Commander's decree

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-23 10:02:43 +08:00
..

leWOOOgo Data

Memory Provider Abstraction Layer for AWOOOI 2.0

Overview

leWOOOgo Data 是 AWOOOI 智能運維平台的資料抽象層積木,負責:

  • Working Memory: Redis 快取 (7 天 TTL)
  • Episodic Memory: PostgreSQL/SQLite 永久保存
  • Dual Memory: 雙層同步寫入

Installation

# 在 apps/api 中使用
pip install -e ../../packages/lewooogo-data

# 如需 PostgreSQL 支援
pip install -e "../../packages/lewooogo-data[pg]"

Usage

from lewooogo_data.interfaces import IMemoryProvider
from lewooogo_data.providers import RedisMemory, PgMemory, DualMemory

# 使用雙層記憶體
memory = DualMemory(
    working=RedisMemory(redis_url="redis://localhost:6379"),
    episodic=PgMemory(database_url="postgresql://...")
)

# 載入 Incident
incident = await memory.load(f"incident:{incident_id}")

Modules

Module Description
interfaces/ ABC 定義
providers/ 具體實作

ADR Reference