jeevzz commited on
Commit
c2b6031
·
verified ·
1 Parent(s): 412aa8a

Update database.py

Browse files
Files changed (1) hide show
  1. database.py +26 -12
database.py CHANGED
@@ -1,23 +1,19 @@
1
- from sqlalchemy import create_engine, Column, String, Integer, Text, DateTime, ForeignKey
2
  from sqlalchemy.ext.declarative import declarative_base
3
  from sqlalchemy.orm import sessionmaker, relationship
4
  from datetime import datetime
5
  import uuid
6
  import os
 
 
7
 
8
- # Neon DB connection
9
- DATABASE_URL = os.getenv("DATABASE_URL")
10
-
11
- if not DATABASE_URL:
12
- print("Warning: DATABASE_URL not set. Using sqlite fallback for local dev only.")
13
- DATABASE_URL = "sqlite:///./local_chat.db"
14
 
15
- # Handle "postgres://" to "postgresql://" fix
16
- if DATABASE_URL and DATABASE_URL.startswith("postgres://"):
17
- DATABASE_URL = DATABASE_URL.replace("postgres://", "postgresql://", 1)
18
 
19
  # Create engine
20
- # sslmode is usually handled in the connection string itself
21
  engine = create_engine(DATABASE_URL, pool_pre_ping=True)
22
  SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
23
  Base = declarative_base()
@@ -55,7 +51,7 @@ def get_db():
55
  try:
56
  return db
57
  finally:
58
- db.close()
59
 
60
  def create_session(user_id: str, name: str = "New Chat"):
61
  """Create a new chat session"""
@@ -137,3 +133,21 @@ def delete_session(session_id: str):
137
  db.commit()
138
  finally:
139
  db.close()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy import create_engine, Column, String, Integer, Text, DateTime, ForeignKey, Index
2
  from sqlalchemy.ext.declarative import declarative_base
3
  from sqlalchemy.orm import sessionmaker, relationship
4
  from datetime import datetime
5
  import uuid
6
  import os
7
+ from pathlib import Path
8
+ from dotenv import load_dotenv
9
 
10
+ # Load environment variables
11
+ env_path = Path(__file__).parent / '.env'
12
+ load_dotenv(dotenv_path=env_path)
 
 
 
13
 
14
+ DATABASE_URL = os.getenv("DATABASE_URL")
 
 
15
 
16
  # Create engine
 
17
  engine = create_engine(DATABASE_URL, pool_pre_ping=True)
18
  SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
19
  Base = declarative_base()
 
51
  try:
52
  return db
53
  finally:
54
+ pass
55
 
56
  def create_session(user_id: str, name: str = "New Chat"):
57
  """Create a new chat session"""
 
133
  db.commit()
134
  finally:
135
  db.close()
136
+
137
+ def update_session_name(session_id: str, name: str):
138
+ """Update the name of a session"""
139
+ db = SessionLocal()
140
+ try:
141
+ session = db.query(Session).filter(Session.id == session_id).first()
142
+ if session:
143
+ session.name = name
144
+ db.commit()
145
+ db.refresh(session)
146
+ return {
147
+ "id": session.id,
148
+ "user_id": session.user_id,
149
+ "name": session.name,
150
+ "created_at": session.created_at.isoformat() if session.created_at else None
151
+ }
152
+ finally:
153
+ db.close()