La respuesta corta es que es más fácil tener instancias separadas de todas ellas para ambas bases de datos. Es posible crear un único enrutamiento sesión , pero tiene sus salvedades.
El sessionmaker
y Session
también admite pasando múltiples atar como argumento
y compromisos de 2 fases
, que también puede permitir el uso de una sola sesión con múltiples bases de datos. Por suerte, las 2 bases de datos que admiten confirmaciones de 2 fases son PostgreSQL y MySQL.
Sobre la relación entre Base
y metadata
:
Base
es una clase base que tiene una metaclase que se usa para crear declarativamente Table
objetos a partir de la información proporcionada en la propia clase y sus subclases. Todo Table
objetos declarados implícitamente por subclases de Base
compartirá los mismos MetaData
.
Puede proporcionar metadatos como argumento al crear una nueva base declarativa y así compartirla entre múltiples Base
s, pero en tu caso no es útil.
MetaData
es una colección de Table
objetos y sus construcciones de esquema asociadas. También puede contener un enlace a un Engine
o Session
.
En resumen, puede tener Table
y MetaData
sin una Base
, pero una Base
requiere MetaData
para funcionar.