Het korte antwoord is dat het het gemakkelijkst is om voor beide databases aparte instances van allemaal te hebben. Het is mogelijk om een enkele routing te maken sessie , maar het heeft zijn kanttekeningen.
De sessionmaker en Session ondersteunt ook het doorgeven van meerdere bindt als argument
en 2-fasen commits
, waarmee ook een enkele sessie met meerdere databases kan worden gebruikt. Het toeval wil dat de 2 databases die 2-fasen commits ondersteunen PostgreSQL en MySQL zijn.
Over de relatie tussen Base en metadata :
Base
is een basisklasse die een metaklasse heeft die wordt gebruikt om declaratief Table te maken objecten van informatie die in de klasse zelf en zijn subklassen wordt verstrekt. Alle Table objecten impliciet gedeclareerd door subklassen van Base deelt dezelfde MetaData .
U kunt metadata verstrekken als argument bij het maken van een nieuwe declaratieve basis en deze dus te delen tussen meerdere Base s, maar in jouw geval is het niet nuttig.
MetaData
is een verzameling van Table objecten en de bijbehorende schemaconstructies. Het kan ook een binding hebben met een Engine of Session .
Kortom, u kunt Table . hebben s en MetaData zonder een Base , maar een Base vereist MetaData om te functioneren.