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.