Lier des objets globaux (mappeurs, métadonnées) à une connexion spécifique à l'utilisateur n'est pas une bonne solution. En plus d'utiliser une session étendue. Je suggère de créer une nouvelle session pour chaque demande et de la configurer pour utiliser des connexions spécifiques à l'utilisateur. L'exemple suivant suppose que vous utilisez des objets de métadonnées distincts pour chaque base de données :
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)()