Files
xiaoxia-saas/apps/api/app/core/database.py
T
Xiaoxia AI b79d6718d6
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 21s
Deploy / Deploy Production (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
style: normalize python formatting gates
2026-06-21 06:52:19 +08:00

35 lines
941 B
Python

import os
from typing import Optional
from pydantic_settings import BaseSettings, SettingsConfigDict
class DatabaseSettings(BaseSettings):
database_url: str = "postgresql+psycopg://postgres:postgres@postgres:5432/xiaoxia_saas"
pool_size: int = 20
max_overflow: int = 40
pool_timeout: int = 30
pool_recycle: int = 3600
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
extra="ignore",
)
_settings: Optional[DatabaseSettings] = None
def get_database_settings() -> DatabaseSettings:
global _settings
if _settings is None:
env = os.getenv("APP_ENV", "development")
env_file = f".env.{env}" if env != "development" else ".env"
if os.path.exists(env_file):
_settings = DatabaseSettings(_env_file=env_file)
else:
_settings = DatabaseSettings()
return _settings