我使用sqlalchemy的反射工具来获取一个Table对象。我这样做是因为这些表是动态的,表/列可以更改。下面是我使用的代码:
def getTableByReflection(self, tableName, metadata, engine):
return Table(tableName, metadata, autoload = True, autoload_with = engine)
问题是,当上面的代码运行两次时,不管列是否已更改,它似乎都返回相同的结果。我尝试过使用mysession.refresh(mytable)
刷新,但是失败了,因为表没有附加到任何元数据-这是有意义的,但为什么我看到缓存的结果?在
有什么方法可以告诉metadata/engine/session忘记这个表,让我干净地加载它吗?在
传入新创建的新元数据实例。在
多亏了codeape的上述评论,我得以通过将语法更改为:
所以每次都要传入一个新的
MetaData()
实例。这可能会影响性能,但在我的应用程序的这一部分对我来说没问题。在全部贷记到codeape
相关问题 更多 >
编程相关推荐