From 159b6d32cc0d49e9a236baee7e5eee8fa2146412 Mon Sep 17 00:00:00 2001 From: george haff Date: Wed, 24 May 2023 12:35:25 -0400 Subject: [PATCH] optionally use alternate db connection for orm stuff (users/roles) --- src/server/_config.py | 1 + src/server/_db.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/server/_config.py b/src/server/_config.py index eee49c3aa..7ac4949ad 100644 --- a/src/server/_config.py +++ b/src/server/_config.py @@ -13,6 +13,7 @@ MAX_COMPATIBILITY_RESULTS = int(3650) SQLALCHEMY_DATABASE_URI = os.environ.get("SQLALCHEMY_DATABASE_URI", "sqlite:///test.db") +SQLALCHEMY_DATABASE_URI_PRIMARY = os.environ.get("SQLALCHEMY_DATABASE_URI_PRIMARY") # defaults SQLALCHEMY_ENGINE_OPTIONS = { diff --git a/src/server/_db.py b/src/server/_db.py index 9057b8181..53e632cdf 100644 --- a/src/server/_db.py +++ b/src/server/_db.py @@ -2,7 +2,7 @@ from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker -from ._config import SQLALCHEMY_DATABASE_URI, SQLALCHEMY_ENGINE_OPTIONS +from ._config import SQLALCHEMY_DATABASE_URI, SQLALCHEMY_DATABASE_URI_PRIMARY, SQLALCHEMY_ENGINE_OPTIONS # _db.py exists so that we dont have a circular dependency: @@ -11,8 +11,13 @@ engine: Engine = create_engine(SQLALCHEMY_DATABASE_URI, **SQLALCHEMY_ENGINE_OPTIONS) -metadata = MetaData(bind=engine) +if SQLALCHEMY_DATABASE_URI_PRIMARY: + user_engine: Engine = create_engine(SQLALCHEMY_DATABASE_URI_PRIMARY, **SQLALCHEMY_ENGINE_OPTIONS) +else: + user_engine: Engine = engine -Session = sessionmaker(bind=engine) +metadata = MetaData(bind=user_engine) + +Session = sessionmaker(bind=user_engine)