Asma-yaseen commited on
Commit
fa320e0
·
verified ·
1 Parent(s): c563727

Upload db.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. db.py +37 -0
db.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Database connection and session management.
3
+
4
+ Task: 1.3
5
+ Spec: specs/database/schema.md
6
+ """
7
+ from sqlmodel import create_engine, Session, SQLModel
8
+ import os
9
+
10
+ # Get database URL from environment
11
+ DATABASE_URL = os.getenv("DATABASE_URL")
12
+
13
+ if not DATABASE_URL:
14
+ raise ValueError("DATABASE_URL environment variable is not set")
15
+
16
+ # Create database engine with connection pooling
17
+ engine = create_engine(
18
+ DATABASE_URL,
19
+ echo=True, # Log SQL queries (set to False in production)
20
+ pool_pre_ping=True, # Verify connections before using
21
+ pool_size=10, # Max 10 connections
22
+ max_overflow=20 # Allow 20 overflow connections
23
+ )
24
+
25
+
26
+ def create_db_and_tables():
27
+ """Create all database tables."""
28
+ SQLModel.metadata.create_all(engine)
29
+
30
+
31
+ def get_session():
32
+ """
33
+ Dependency function to get database session.
34
+ Use with FastAPI Depends.
35
+ """
36
+ with Session(engine) as session:
37
+ yield session