38 lines
1.2 KiB
Python
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
|
|
})
|