From 5e39d71884428e9bc9bc7ff17e9122b47a5c31f8 Mon Sep 17 00:00:00 2001 From: javara999 Date: Wed, 1 Apr 2026 12:19:22 +0900 Subject: [PATCH] fix --- setup.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index d8cba31..2897f13 100644 --- a/setup.py +++ b/setup.py @@ -35,13 +35,28 @@ def _get_declared_package_name(): def ensure_sqlalchemy_bind(package_name=None): package_name = package_name or _get_declared_package_name() + runtime_package_name = _get_runtime_package_name() try: if getattr(F, "app", None) is None: return package_name binds = F.app.config.setdefault("SQLALCHEMY_BINDS", {}) + runtime_uri = binds.get(runtime_package_name) + if runtime_uri in [None, ""]: + runtime_db_path = os.path.join(F.config["path_data"], "db", f"{runtime_package_name}.db") + runtime_uri = f"sqlite:///{runtime_db_path}?check_same_thread=False" + binds[runtime_package_name] = runtime_uri if package_name not in binds: - db_path = os.path.join(F.config["path_data"], "db", f"{package_name}.db") - binds[package_name] = f"sqlite:///{db_path}?check_same_thread=False" + binds[package_name] = runtime_uri + + db_instance = getattr(F, "db", None) + if db_instance is not None: + try: + engines = db_instance.engines + runtime_engine = engines.get(runtime_package_name) + if runtime_engine is not None and package_name not in engines: + engines[package_name] = runtime_engine + except Exception: + pass except Exception: pass return package_name