FreshPixels commited on
Commit
d1983a4
·
verified ·
1 Parent(s): b680a4a

Update database.py

Browse files
Files changed (1) hide show
  1. database.py +4 -8
database.py CHANGED
@@ -11,7 +11,6 @@ class Database:
11
  self.pool: Optional[asyncpg.Pool] = None
12
 
13
  async def connect(self) -> None:
14
- # Render free tier: 512 MB RAM, keep pool small
15
  self.pool = await asyncpg.create_pool(
16
  dsn=config.DATABASE_URL,
17
  min_size=1,
@@ -43,7 +42,7 @@ class Database:
43
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
44
  )
45
  """)
46
- await conn.execute("""
47
  CREATE TABLE IF NOT EXISTS messages (
48
  id SERIAL PRIMARY KEY,
49
  user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
@@ -71,7 +70,6 @@ class Database:
71
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
72
  )
73
  """)
74
-
75
  logger.info("Database tables created/verified")
76
 
77
  async def upsert_user(
@@ -108,7 +106,6 @@ class Database:
108
  ORDER BY created_at DESC
109
  LIMIT $2
110
  """, user_id, limit)
111
- # Reverse to chronological order for the LLM
112
  return [
113
  {"role": r["role"], "content": r["content"], "created_at": r["created_at"]}
114
  for r in reversed(rows)
@@ -153,10 +150,11 @@ class Database:
153
 
154
  async def count_unsummarized(self, user_id: int) -> int:
155
  async with self._acquire() as conn:
156
- return await conn.fetchval("""
157
  SELECT COUNT(*) FROM messages
158
  WHERE user_id = $1 AND is_summarized = FALSE
159
- """, user_id) or 0
 
160
 
161
  async def clear_history(self, user_id: int) -> int:
162
  async with self._acquire() as conn:
@@ -173,7 +171,6 @@ class Database:
173
  logger.info("Cleared %d messages and summary for user %s", count, user_id)
174
  return count
175
 
176
-
177
  async def get_stats(self, user_id: int) -> Dict[str, Any]:
178
  async with self._acquire() as conn:
179
  user_count = await conn.fetchval("SELECT COUNT(*) FROM users")
@@ -189,4 +186,3 @@ class Database:
189
 
190
 
191
  db = Database()
192
-
 
11
  self.pool: Optional[asyncpg.Pool] = None
12
 
13
  async def connect(self) -> None:
 
14
  self.pool = await asyncpg.create_pool(
15
  dsn=config.DATABASE_URL,
16
  min_size=1,
 
42
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
43
  )
44
  """)
45
+ await conn.execute("""
46
  CREATE TABLE IF NOT EXISTS messages (
47
  id SERIAL PRIMARY KEY,
48
  user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
 
70
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
71
  )
72
  """)
 
73
  logger.info("Database tables created/verified")
74
 
75
  async def upsert_user(
 
106
  ORDER BY created_at DESC
107
  LIMIT $2
108
  """, user_id, limit)
 
109
  return [
110
  {"role": r["role"], "content": r["content"], "created_at": r["created_at"]}
111
  for r in reversed(rows)
 
150
 
151
  async def count_unsummarized(self, user_id: int) -> int:
152
  async with self._acquire() as conn:
153
+ val = await conn.fetchval("""
154
  SELECT COUNT(*) FROM messages
155
  WHERE user_id = $1 AND is_summarized = FALSE
156
+ """, user_id)
157
+ return val or 0
158
 
159
  async def clear_history(self, user_id: int) -> int:
160
  async with self._acquire() as conn:
 
171
  logger.info("Cleared %d messages and summary for user %s", count, user_id)
172
  return count
173
 
 
174
  async def get_stats(self, user_id: int) -> Dict[str, Any]:
175
  async with self._acquire() as conn:
176
  user_count = await conn.fetchval("SELECT COUNT(*) FROM users")
 
186
 
187
 
188
  db = Database()