diff --git a/financial_system/core/settings.py b/financial_system/core/settings.py index c44a795..5a9fc12 100644 --- a/financial_system/core/settings.py +++ b/financial_system/core/settings.py @@ -76,7 +76,7 @@ def get_settings() -> AppSettings: upload_dir=_project_path(storage.get("upload_dir", "uploads")), output_dir=_project_path(storage.get("output_dir", "outputs")), avatar_dir=_project_path(storage.get("avatar_dir", "static/uploads/avatars")), - database_url=str(database.get("url", DEFAULT_DATABASE_URL)).strip(), + database_url=_env_string("DATABASE_URL", database.get("url", DEFAULT_DATABASE_URL)), dingtalk_app_key=str(dingtalk.get("app_key", "")).strip(), dingtalk_app_secret=str(dingtalk.get("app_secret", "")).strip(), dingtalk_base_url=str(dingtalk.get("base_url", "https://oapi.dingtalk.com")).rstrip("/"), @@ -141,6 +141,11 @@ def _string_tuple(value: object, default: tuple[str, ...]) -> tuple[str, ...]: return normalized or default +def _env_string(name: str, fallback: object) -> str: + configured_value = os.getenv(name, "").strip() + return configured_value or str(fallback).strip() + + def _bool(value: object) -> bool: if isinstance(value, bool): return value