diff --git a/Containerfile b/Containerfile index 6ffec29..5be5b42 100644 --- a/Containerfile +++ b/Containerfile @@ -5,7 +5,7 @@ ADD . /app RUN apk add --no-cache cargo git libpq libpq-dev && \ uv sync --frozen --no-install-project --no-dev --extra postgres RUN --mount=type=cache,target=/root/.cache/uv \ - uv sync --frozen --no-dev + uv sync --frozen --no-dev --extra postgres FROM python:3.13-alpine3.20 # slixmpp requires libgcc and libpq for Postgres support diff --git a/src/xmpp_api/config/config.py b/src/xmpp_api/config/config.py index 7743c25..3f9b347 100644 --- a/src/xmpp_api/config/config.py +++ b/src/xmpp_api/config/config.py @@ -1,5 +1,5 @@ import os -from typing import Annotated, Self, cast +from typing import Annotated, Any, Self, cast import logging from pydantic import BaseModel, Field, model_validator @@ -53,6 +53,9 @@ class _DatabaseConfig(BaseModel): # The file to read the database URI from uri_file: str | None = Field(default=None) + # sqlalchemy options for the database connection + connect_args: dict[str, Any] = Field(default_factory=dict) + @model_validator(mode="after") def validate_secret(self) -> Self: if self.uri_plain is None and self.uri_file is None: diff --git a/src/xmpp_api/db/__init__.py b/src/xmpp_api/db/__init__.py index 7f14468..4e7e146 100644 --- a/src/xmpp_api/db/__init__.py +++ b/src/xmpp_api/db/__init__.py @@ -12,9 +12,7 @@ from xmpp_api.db.bot import Bot, AllowedJid def get_engine(config: ConfigDep) -> Engine: return create_engine( config.database.uri, - connect_args={ - "check_same_thread": False, - }, + connect_args=config.database.connect_args, )