rozbicie na moduły, poprawki i komendy cli
This commit is contained in:
20
config.py
20
config.py
@@ -11,6 +11,13 @@ def _get_bool(name: str, default: bool) -> bool:
|
||||
def _get_str(name: str, default: str) -> str:
|
||||
return os.environ.get(name, default)
|
||||
|
||||
|
||||
def _get_int(name: str, default: int) -> int:
|
||||
try:
|
||||
return int(os.environ.get(name, default))
|
||||
except (TypeError, ValueError):
|
||||
return default
|
||||
|
||||
class Config:
|
||||
"""
|
||||
Konfiguracja aplikacji pobierana z ENV (z sensownymi domyślnymi wartościami).
|
||||
@@ -50,6 +57,12 @@ class Config:
|
||||
# (opcjonalnie) wyłącz warningi track_modifications
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||
|
||||
SQLALCHEMY_ENGINE_OPTIONS = {
|
||||
"pool_pre_ping": True,
|
||||
"pool_recycle": _get_int("DB_POOL_RECYCLE", 300),
|
||||
"pool_timeout": _get_int("DB_POOL_TIMEOUT", 30),
|
||||
}
|
||||
|
||||
HEALTHCHECK_TOKEN = _get_str("HEALTHCHECK_TOKEN", "healthcheck")
|
||||
|
||||
# Baza danych
|
||||
@@ -62,10 +75,17 @@ class Config:
|
||||
f"postgresql://{os.environ['DB_USER']}:{os.environ['DB_PASSWORD']}@"
|
||||
f"{os.environ['DB_HOST']}:{os.environ.get('DB_PORT', 5432)}/{os.environ['DB_NAME']}"
|
||||
)
|
||||
SQLALCHEMY_ENGINE_OPTIONS["connect_args"] = {
|
||||
"connect_timeout": _get_int("DB_CONNECT_TIMEOUT", 5),
|
||||
"application_name": _get_str("DB_APPLICATION_NAME", "zbiorka-app"),
|
||||
}
|
||||
elif DB_ENGINE == "mysql":
|
||||
SQLALCHEMY_DATABASE_URI = (
|
||||
f"mysql+pymysql://{os.environ['DB_USER']}:{os.environ['DB_PASSWORD']}@"
|
||||
f"{os.environ['DB_HOST']}:{os.environ.get('DB_PORT', 3306)}/{os.environ['DB_NAME']}"
|
||||
)
|
||||
SQLALCHEMY_ENGINE_OPTIONS["connect_args"] = {
|
||||
"connect_timeout": _get_int("DB_CONNECT_TIMEOUT", 5),
|
||||
}
|
||||
else:
|
||||
raise ValueError("Nieobsługiwany typ bazy danych.")
|
||||
Reference in New Issue
Block a user