Add "multi-engine" support for Trainwreck transaction views
This commit is contained in:
parent
b07365b487
commit
e756ae3c8f
4 changed files with 40 additions and 5 deletions
|
@ -30,6 +30,7 @@ import os
|
|||
import warnings
|
||||
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
|
||||
from rattail.config import make_config
|
||||
from rattail.exceptions import ConfigurationError
|
||||
|
@ -37,6 +38,7 @@ from rattail.db.types import GPCType
|
|||
|
||||
from pyramid.config import Configurator
|
||||
from pyramid.authentication import SessionAuthenticationPolicy
|
||||
from zope.sqlalchemy import register
|
||||
|
||||
import tailbone.db
|
||||
from tailbone.auth import TailboneAuthorizationPolicy
|
||||
|
@ -69,6 +71,13 @@ def make_rattail_config(settings):
|
|||
if hasattr(rattail_config, 'tempmon_engine'):
|
||||
tailbone.db.TempmonSession.configure(bind=rattail_config.tempmon_engine)
|
||||
|
||||
# create session wrappers for each "extra" Trainwreck engine
|
||||
for key, engine in rattail_config.trainwreck_engines.items():
|
||||
if key != 'default':
|
||||
Session = scoped_session(sessionmaker(bind=engine))
|
||||
register(Session)
|
||||
tailbone.db.ExtraTrainwreckSessions[key] = Session
|
||||
|
||||
# Make sure rattail config object uses our scoped session, to avoid
|
||||
# unnecessary connections (and pooling limits).
|
||||
rattail_config._session_factory = lambda: (tailbone.db.Session(), False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue