Det korta svaret är att det är enklast att ha separata instanser av dem alla för båda databaserna. Det är möjligt att skapa en enda routing session , men det har sina varningar.
sessionsmaker och Session stöder även passerar flera binder som argument
och 2-fas commits
, vilket också kan tillåta användning av en enda session med flera databaser. Som tur är är de två databaserna som stöder 2-fas commits PostgreSQL och MySQL.
Om relationen mellan Bas och metadata :
Bas
är en basklass som har en metaklass som används för att deklarativt skapa Table objekt från information som tillhandahålls i själva klassen och dess underklasser. Alla Table objekt som implicit deklareras av underklasser av Bas kommer att dela samma MetaData .
Du kan tillhandahålla metadata som ett argument när du skapar en ny deklarativ bas och därmed delar den mellan flera Base s, men i ditt fall är det inte användbart.
MetaData
är en samling av Table objekt och deras tillhörande schemakonstruktioner. Den kan också hålla en bindning till en Engine eller Session .
Kort sagt, du kan ha Table s och MetaData utan en Bas , men en Bas kräver MetaData att fungera.