sql >> Database teknologi >  >> RDS >> Mysql

Når jeg opretter forbindelse til flere databaser, har jeg brug for flere SQLAlchemy Metadata-, Base- eller Session-objekter?

Det korte svar er, at det er nemmest at have separate forekomster af dem alle for begge databaser. Det er muligt at oprette en enkelt routing session , men det har sine forbehold.

sessionmakeren og Session understøtter også passer flere binder som argument og 2-fasede forpligtelser , som også kan tillade brug af en enkelt session med flere databaser. Som heldet ville det, er de 2 databaser, der understøtter 2-fase commits, PostgreSQL og MySQL.

Om forholdet mellem Base og metadata :

Base er en basisklasse, der har en metaklasse, der bruges til deklarativt at skabe Tabel objekter fra information givet i selve klassen og dens underklasser. Alle Tabel objekter implicit erklæret af underklasser af Base vil dele de samme MetaData .

Du kan give metadata som et argument, når du opretter en ny deklarativ base og dermed deler den mellem flere Base s, men i dit tilfælde er det ikke nyttigt.

MetaData er en samling af Tabel objekter og deres tilknyttede skemakonstruktioner. Den kan også holde en binding til en Engine eller Session .

Kort sagt kan du have Tabel s og MetaData uden en Base , men en Base kræver MetaData at fungere.




  1. Kan ikke videregive parameter 2 ved reference - uuid PDO

  2. Opretter forbindelse til Docker-beholder fra vært

  3. Mysql int(11) nummer uden for rækkevidde

  4. Eksport af forespørgselsresultater i MySQL Workbench ud over 1000 poster