vibe.review.database¶
Database connection management for VIBE Review.
Provides SQLAlchemy session management with support for: - Flask app context integration - Standalone usage (CLI, tests) - Connection pooling
FlaskDBExtension ¶
Flask extension for database session management.
Usage
db = FlaskDBExtension() db.init_app(app)
In request context:¶
with db.session() as session: ...
get_database_url ¶
get_database_url() -> str
Get database URL from Flask app config, env (test bootstrap), or default.
get_engine ¶
get_engine(database_url: str | None = None, *, sql_echo: bool | None = None) -> Engine
Get or create the SQLAlchemy engine.
Uses connection pooling with sensible defaults for web applications.
get_session_factory ¶
get_session_factory(database_url: str | None = None) -> sessionmaker[Session]
Get or create the session factory.
get_db_session ¶
get_db_session(database_url: str | None = None) -> Generator[Session, None, None]
Context manager for database sessions.
Usage
with get_db_session() as session: requirements = session.query(RequirementCacheModel).all()
Automatically commits on success, rolls back on exception.
init_db ¶
init_db(database_url: str | None = None, drop_existing: bool = False) -> None
Initialize the database schema.
| Parameters: |
|
|---|
reset_connection_pool ¶
reset_connection_pool() -> None
Reset the connection pool.
Useful for tests or when database configuration changes.
init_app ¶
init_app(app: Flask) -> None
Initialize the review database with a Flask app.
This is the module-level entry point for Flask integration.
get_request_session ¶
get_request_session() -> Session
Get a database session scoped to the current Flask request.
The session is automatically closed at the end of the request. For use in Flask route handlers where automatic commit/rollback is not desired (routes manage their own transactions).