fix(db): prefer postgres config in production refs NOISSUE
This commit is contained in:
@@ -66,6 +66,32 @@ class Settings(BaseSettings):
|
||||
DB_POOL_RECYCLE: int = 3600
|
||||
DB_POOL_TIMEOUT: int = 30
|
||||
|
||||
@property
|
||||
def postgres_url(self) -> str:
|
||||
"""Get PostgreSQL URL with trimmed whitespace."""
|
||||
return (self.POSTGRES_URL or "").strip()
|
||||
|
||||
@property
|
||||
def postgres_env_configured(self) -> bool:
|
||||
"""Whether PostgreSQL was explicitly configured via environment variables."""
|
||||
if self.postgres_url:
|
||||
return True
|
||||
postgres_env_keys = (
|
||||
"POSTGRES_HOST",
|
||||
"POSTGRES_PORT",
|
||||
"POSTGRES_USER",
|
||||
"POSTGRES_PASSWORD",
|
||||
"POSTGRES_DB",
|
||||
)
|
||||
return any(bool(os.environ.get(key, "").strip()) for key in postgres_env_keys)
|
||||
|
||||
@property
|
||||
def use_sqlite(self) -> bool:
|
||||
"""Whether SQLite should be used as the active database backend."""
|
||||
if not self.USE_SQLITE:
|
||||
return False
|
||||
return not self.postgres_env_configured
|
||||
|
||||
@property
|
||||
def pool(self) -> dict:
|
||||
"""Get database pool configuration."""
|
||||
@@ -79,8 +105,10 @@ class Settings(BaseSettings):
|
||||
@property
|
||||
def database_url(self) -> str:
|
||||
"""Get database connection URL."""
|
||||
if self.USE_SQLITE:
|
||||
if self.use_sqlite:
|
||||
return f"sqlite:///{self.SQLITE_DB_PATH}"
|
||||
if self.postgres_url:
|
||||
return self.postgres_url
|
||||
return (
|
||||
f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}"
|
||||
f"@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}"
|
||||
@@ -89,8 +117,10 @@ class Settings(BaseSettings):
|
||||
@property
|
||||
def test_database_url(self) -> str:
|
||||
"""Get test database connection URL."""
|
||||
if self.USE_SQLITE:
|
||||
if self.use_sqlite:
|
||||
return f"sqlite:///{self.SQLITE_DB_PATH}"
|
||||
if self.postgres_url:
|
||||
return self.postgres_url
|
||||
return (
|
||||
f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}"
|
||||
f"@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_TEST_DB}"
|
||||
|
||||
Reference in New Issue
Block a user