prod-wag-backend-automate-s.../Controllers/Postgres/config.py

42 lines
1.2 KiB
Python

from pydantic_settings import BaseSettings, SettingsConfigDict
"""
pool_pre_ping=True, # Verify connection before using
pool_size=20, # Maximum number of permanent connections
max_overflow=10, # Maximum number of additional connections
pool_recycle=600, # Recycle connections after 1 hour
pool_timeout=30, # Wait up to 30 seconds for a connection
echo=True, # Set to True for debugging SQL queries
"""
class Configs(BaseSettings):
"""
Postgresql configuration settings.
"""
DB: str = "postgres"
USER: str = "postgres"
PASSWORD: str = "password"
HOST: str = "10.10.2.14"
PORT: int = 5432
ENGINE: str = "postgresql+psycopg2"
POOL_PRE_PING: bool = True
POOL_SIZE: int = 20
MAX_OVERFLOW: int = 10
POOL_RECYCLE: int = 600
POOL_TIMEOUT: int = 30
ECHO: bool = True
@property
def url(self):
"""Generate the database URL."""
return f"{self.ENGINE}://{self.USER}:{self.PASSWORD}@{self.HOST}:{self.PORT}/{self.DB}"
model_config = SettingsConfigDict(env_prefix="POSTGRES_")
# singleton instance of the POSTGRESQL configuration settings
postgres_configs = Configs()
print("url", postgres_configs.url)