Add support for multiple DB engines, for Catapult views
This commit is contained in:
parent
ed6e4f0e5b
commit
d17ff9cae9
|
@ -24,6 +24,9 @@
|
|||
Theo web app
|
||||
"""
|
||||
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
from zope.sqlalchemy import register
|
||||
|
||||
from tailbone import app
|
||||
|
||||
from theo.config import integrate_catapult, integrate_corepos, integrate_locsms
|
||||
|
@ -53,13 +56,26 @@ def main(global_config, **settings):
|
|||
# establish pyramid config
|
||||
pyramid_config = app.make_pyramid_config(settings)
|
||||
|
||||
# maybe configure integration db connections
|
||||
if integrate_catapult(rattail_config):
|
||||
from tailbone_onager.db import CatapultSession
|
||||
CatapultSession.configure(bind=rattail_config.catapult_engine)
|
||||
# CORE-POS DB(s)
|
||||
if integrate_corepos(rattail_config):
|
||||
from tailbone_corepos.db import CoreOfficeSession
|
||||
CoreOfficeSession.configure(bind=rattail_config.corepos_engine)
|
||||
|
||||
# Catapult DB(s)
|
||||
if integrate_catapult(rattail_config):
|
||||
from tailbone_onager.db import CatapultSession, ExtraCatapultSessions
|
||||
|
||||
# default session / engine
|
||||
CatapultSession.configure(bind=rattail_config.catapult_engine)
|
||||
|
||||
# make session wrappers for each "extra" engine
|
||||
for key, engine in rattail_config.catapult_engines.items():
|
||||
if key != 'default':
|
||||
Session = scoped_session(sessionmaker(bind=engine))
|
||||
register(Session)
|
||||
ExtraCatapultSessions[key] = Session
|
||||
|
||||
# LOC SMS DB(s)
|
||||
if integrate_locsms(rattail_config):
|
||||
from tailbone_locsms.db import SmsSession
|
||||
SmsSession.configure(bind=rattail_config.locsms_engine)
|
||||
|
|
Loading…
Reference in a new issue