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.