PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment utiliser SQLAlchemy pour accéder de manière transparente à plusieurs bases de données ?

Bien sûr, vous pouvez le faire avec SQLAlchemy.

Tout ce que vous avez à faire est de créer différents moteurs de connexion, chacun avec son propre créateur de session. Rien dans SQLAlchemy ne vous limite à une seule base de données à la fois.

engines = []
sessions = []
for dbconninfo in databases:
    engine = create_engine(dbconninfo)
    engines.append(engine)
    sessions.append(sessionmaker(bind=engine)())

Vous pouvez utiliser chaque session pour exécuter des requêtes, les objets de résultat sont attachés à la session qui les a produits, afin que les modifications soient renvoyées à la bonne base de données. Étudiez la documentation de session en détail, pour voir ce qui se passe si vous deviez fusionner un objet d'une session dans une autre, par exemple.