youtube_trends / src /database_connection.py
molehh's picture
created project
eec3758
import psycopg2
from psycopg2 import pool
from dotenv import load_dotenv
import os
load_dotenv()
class DatabaseConnection:
def __init__(self):
self.pool = None
def connect(self):
"""Establish connection pool"""
try:
if not self.pool:
self.pool = psycopg2.pool.SimpleConnectionPool(
minconn=1,
maxconn=5, # Adjust max connections
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
host=os.getenv("DB_HOST"),
port=os.getenv("DB_PORT"),
database=os.getenv("DB_NAME")
)
print("✅ Connection pool established.")
except Exception as e:
print(f"❌ Error establishing connection pool: {e}")
def get_connection(self):
"""Get connection from the pool"""
if self.pool:
return self.pool.getconn()
else:
raise Exception("Connection pool not established")
def release_connection(self, conn):
"""Release connection back to the pool"""
if self.pool and conn:
self.pool.putconn(conn)
def close_pool(self):
"""Close the connection pool"""
if self.pool:
self.pool.closeall()