我正在使用sqlalchemy的反射工具来获取Table对象。我这样做是因为这些表是动态的,表/列可以更改。这是我正在使用的代码:
def getTableByReflection(self, tableName, metadata, engine):
return Table(tableName, metadata, autoload = True, autoload_with = engine)
问题在于,当上述代码运行两次时,无论列是否已更改,它似乎都会返回相同的结果。我尝试使用mysession.refresh(mytable)
进行刷新但是失败了,因为表没有附加到任何元数据 - 这是有道理的但是为什么我看到缓存的结果?
有没有办法告诉元数据/引擎/会话忘记这个表并让我干净地加载它?