sql >> Databasteknik >  >> RDS >> Mysql

När jag ansluter till flera databaser, behöver jag flera SQLAlchemy Metadata, Base eller Session-objekt?

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.




  1. MySQL:s HEX() och UNHEX() motsvarighet i Postgres?

  2. Hur man hittar EBS R12 komponenter Version

  3. Vad är det optimala MYSQL-frågenumret i php-skript?

  4. Vilken är den bästa lösningen för SQL-injektionssäkerhet på MySQL?