Files
xiaoxia-saas/apps/api/app/db.py
T
Xiaoxia AI 309906cb53
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 13s
Deploy / Deploy Staging (push) Successful in 1m56s
Deploy / Deploy Production (push) Has been skipped
fix(schema): forbid auto create schema in deployed envs
2026-06-21 07:36:46 +08:00

32 lines
923 B
Python

from collections.abc import Generator
from app.config import settings
from sqlalchemy.orm import Session
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.DATABASE_URL)
engine, SessionLocal = build_session_factory(
settings.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)
def get_db() -> Generator[Session, None, None]:
db = SessionLocal()
try:
yield db
finally:
db.close()