Есть ли в SQLAlchemy способ выполнять кросс-базы данных? Чтобы быть конкретным, вот мой случай использования:
Схема
- db1.entity1
- entity1_id: первичный ключ
- entity2_id: внешний ключ для db2.entity2.entity2_id
- db2.entity2
- entity2_id: первичный ключ
Модель
Я использую декларативный стиль для моделей.
class Entity1(Base):
__tablename__ = 'entity1' ## I tried combination of <db>.<table> with no success
entity1_id = Column(Integer, primary_key=True)
entity2_id = Column(Integer, ForeignKey('db2.entity2.entity2_id'))
entity2 = relationship('Entity2')
class Entity2(Base):
__tablename__ = 'entity2' ## I tried combination of <db>.<table> with no success
entity2_id = Column(Integer, primary_key=True)
Теперь, как и ожидалось, мои запросы на Entity1 не выполняются с сообщениями об ошибках MySQL о том, что таблица entity2 не найдена. Я попробовал много разных комбинаций для __tablename__
, но безуспешно. Мне было интересно, возможно ли это в SQLAlchemy.