RivaTerminal/config/database_config.py

38 lines
1.2 KiB
Python

# 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
})