清除 SQLAlchemy 反射缓存
我正在使用sqlalchemy的反射工具来获取一个表对象。这样做是因为这些表是动态的,表和列可能会发生变化。以下是我使用的代码:
def getTableByReflection(self, tableName, metadata, engine):
return Table(tableName, metadata, autoload = True, autoload_with = engine)
问题是,当我运行上面的代码两次时,无论列是否发生了变化,它似乎总是返回相同的结果。我尝试使用mysession.refresh(mytable)
来刷新,但这失败了,因为这个表没有附加到任何元数据上——这很合理,但那为什么我会看到缓存的结果呢?
有没有办法让元数据/引擎/会话忘记这个表,让我可以干净地加载它呢?