
使用SQLAlchemy在一个Engine上反射另一个数据库的表:详解及解决方案
本文探讨如何利用已连接到数据库A的SQLAlchemy Engine来访问数据库B中的表。 由于SQLAlchemy Engine对象通常仅连接到单个数据库,直接使用连接到数据库A的Engine反射数据库B中的表是行不通的。 Engine代表数据库连接,数据库A无法直接访问数据库B的数据。
文章中提出的场景,更准确地说,是在数据库A中已定义的模型(例如模型x)上,需要使用数据库B的连接进行操作。 假设模型x在数据库A和数据库B中具有相同的结构,则需要分别使用连接到数据库A和数据库B的两个不同Engine。 这意味着必须创建一个连接到数据库B的第二个Engine,然后用此新Engine来执行数据库B中表x的反射操作。 这并非通过单一Engine在数据库间切换实现,而是需要建立两个独立的数据库连接。










