from app.config import settings from packages.adapters.sqlalchemy_impl import ( build_session_factory, ensure_database_exists, initialize_database, ) from packages.adapters.sqlalchemy_impl.schema_guard import assert_auto_create_schema_allowed ensure_database_exists(settings.effective_database_url) engine, SessionLocal = build_session_factory( settings.effective_database_url, pool_size=settings.DATABASE_POOL_SIZE, max_overflow=settings.DATABASE_MAX_OVERFLOW, pool_timeout=settings.DATABASE_POOL_TIMEOUT, pool_recycle=settings.DATABASE_POOL_RECYCLE, ) assert_auto_create_schema_allowed(settings.ENVIRONMENT, settings.AUTO_CREATE_SCHEMA) if settings.AUTO_CREATE_SCHEMA: initialize_database(engine)