From 10272aed8412a036e3bd07cfddae9d208e6d2bd4 Mon Sep 17 00:00:00 2001 From: "sentry-autofix[bot]" <157164994+sentry-autofix[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:25:26 +0000 Subject: [PATCH] File change --- src/seer/db.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/seer/db.py b/src/seer/db.py index a6155822f..4dd375213 100644 --- a/src/seer/db.py +++ b/src/seer/db.py @@ -1,9 +1,11 @@ import contextlib import datetime import json +import logging from enum import StrEnum from typing import Any, List, Optional + import sqlalchemy from flask import Flask from flask_migrate import Migrate @@ -35,20 +37,32 @@ from seer.configuration import AppConfig from seer.dependency_injection import inject, injected +logger = logging.getLogger(__name__) +_db_initialized = False @inject def initialize_database( config: AppConfig = injected, app: Flask = injected, ): + global _db_initialized + + if _db_initialized and hasattr(app, 'extensions') and 'sqlalchemy' in app.extensions: + logger.debug("SQLAlchemy already initialized for this Flask app instance") + return + + logger.debug("Initializing SQLAlchemy for Flask app") app.config["SQLALCHEMY_DATABASE_URI"] = config.DATABASE_URL app.config["SQLALCHEMY_ENGINE_OPTIONS"] = {"connect_args": {"prepare_threshold": None}} + db.init_app(app) migrate.init_app(app, db) + with app.app_context(): Session.configure(bind=db.engine) + _db_initialized = True class Base(DeclarativeBase):