# config/database_config.py import os from dotenv import load_dotenv # Load environment variables load_dotenv() # Required environment variables REQUIRED_ENV_VARS = ['DB_HOST', 'DB_PORT', 'DB_NAME', 'DB_USER', 'DB_PASSWORD'] # Check for required environment variables missing_vars = [var for var in REQUIRED_ENV_VARS if not os.getenv(var)] if missing_vars: raise EnvironmentError( f"Missing required environment variables: {', '.join(missing_vars)}\n" "Please ensure all required variables are set in your .env file" ) # Database configuration DB_CONFIG = { 'host': os.getenv('DB_HOST'), 'port': int(os.getenv('DB_PORT')), 'database': os.getenv('DB_NAME'), 'user': os.getenv('DB_USER'), 'password': os.getenv('DB_PASSWORD') } # Additional optional configuration DB_CONFIG.update({ 'application_name': 'RivaCube', # Helps identify connections in pg_stat_activity 'connect_timeout': 10, # Connection timeout in seconds 'keepalives': 1, # Enable TCP keepalive 'keepalives_idle': 30, # TCP keepalive idle time 'keepalives_interval': 10, # TCP keepalive interval 'keepalives_count': 5 # TCP keepalive count })