555e282cc4
pi-agent-plugin checks / lint (push) Has been cancelled
pi-agent-plugin checks / test (20) (push) Has been cancelled
pi-agent-plugin checks / test (22) (push) Has been cancelled
pi-agent-plugin checks / build (push) Has been cancelled
TypeScript SDK CI / check_changes (push) Has been cancelled
TypeScript SDK CI / changelog_check (push) Has been cancelled
ci / changelog_check (push) Has been cancelled
ci / check_changes (push) Has been cancelled
ci / build_mem0 (3.10) (push) Has been cancelled
ci / build_mem0 (3.11) (push) Has been cancelled
ci / build_mem0 (3.12) (push) Has been cancelled
CLI Node CI / lint (push) Has been cancelled
CLI Node CI / test (20) (push) Has been cancelled
CLI Node CI / test (22) (push) Has been cancelled
CLI Node CI / build (push) Has been cancelled
CLI Python CI / lint (push) Has been cancelled
CLI Python CI / test (3.10) (push) Has been cancelled
CLI Python CI / test (3.11) (push) Has been cancelled
CLI Python CI / test (3.12) (push) Has been cancelled
CLI Python CI / build (push) Has been cancelled
openclaw checks / lint (push) Has been cancelled
openclaw checks / test (20) (push) Has been cancelled
openclaw checks / test (22) (push) Has been cancelled
openclaw checks / build (push) Has been cancelled
opencode-plugin checks / build (push) Has been cancelled
TypeScript SDK CI / build_ts_sdk (20) (push) Has been cancelled
TypeScript SDK CI / build_ts_sdk (22) (push) Has been cancelled
TypeScript SDK CI / integration_ts_sdk (20) (push) Has been cancelled
TypeScript SDK CI / integration_ts_sdk (22) (push) Has been cancelled
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
"""Delete request_logs rows older than REQUEST_LOG_RETENTION_DAYS (default 30).
|
|
|
|
Run inside the `mem0` container, or wire into cron / a systemd timer on the host.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
from datetime import datetime, timedelta, timezone
|
|
|
|
from sqlalchemy import delete
|
|
|
|
from db import SessionLocal
|
|
from models import RequestLog
|
|
|
|
|
|
def main() -> int:
|
|
raw = os.environ.get("REQUEST_LOG_RETENTION_DAYS", "").strip() or "30"
|
|
try:
|
|
retention_days = int(raw)
|
|
except ValueError:
|
|
sys.stderr.write("REQUEST_LOG_RETENTION_DAYS must be an integer.\n")
|
|
return 1
|
|
if retention_days < 1:
|
|
sys.stderr.write("REQUEST_LOG_RETENTION_DAYS must be >= 1.\n")
|
|
return 1
|
|
|
|
cutoff = datetime.now(timezone.utc) - timedelta(days=retention_days)
|
|
with SessionLocal() as session:
|
|
result = session.execute(delete(RequestLog).where(RequestLog.created_at < cutoff))
|
|
session.commit()
|
|
sys.stdout.write(f"Deleted {result.rowcount or 0} request_logs rows older than {cutoff.isoformat()}.\n")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|