Het binden van globale objecten (mappers, metadata) aan een gebruikersspecifieke verbinding is geen goede manier. Evenals het gebruik van scoped sessie. Ik stel voor om voor elk verzoek een nieuwe sessie te maken en deze te configureren om gebruikersspecifieke verbindingen te gebruiken. In het volgende voorbeeld wordt ervan uitgegaan dat u afzonderlijke metagegevensobjecten gebruikt voor elke database:
binds = {}
finance_engine = create_engine(url1)
binds.update(dict.fromkeys(finance_metadata.sorted_tables, finance_engine))
# The following line is required when mappings to joint tables are used (e.g.
# in joint table inheritance) due to bug (or misfeature) in SQLAlchemy 0.5.4.
# This issue might be fixed in newer versions.
binds.update(dict.fromkeys([Employee, Customer, Invoice], finance_engine))
staff_engine = create_engine(url2)
binds.update(dict.fromkeys(staff_metadata.sorted_tables, staff_engine))
# See comment above.
binds.update(dict.fromkeys([Project, Hour], staff_engine))
session = sessionmaker(binds=binds)()