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.