SQLAlchemy:在列反射期间排除几个列?

SQLAlchemy:在列反射期间排除几个列?,sqlalchemy,Sqlalchemy,我正在使用声明性基和反射映射一个表。db表有1k+列,但我只想映射几百列,这些列的名称可以通过sql访问 使用反射,我在事件处理程序函数中获得列信息,这允许我修改列的属性,但我无法从映射中跳过该列 def column_reflect(inspector, table, column_info): #... class MYCLASS1(Base): __table__ = Table('MYTABLE1', mymetadata, autoload_with=myengine,

我正在使用声明性基和反射映射一个表。db表有1k+列,但我只想映射几百列,这些列的名称可以通过sql访问

使用反射,我在事件处理程序函数中获得列信息,这允许我修改列的属性,但我无法从映射中跳过该列

def column_reflect(inspector, table, column_info):
   #...

class MYCLASS1(Base):
    __table__ = Table('MYTABLE1', mymetadata, autoload_with=myengine, autoload=True, listeners=[('column_reflect', column_reflect)])
SQLAlchemy是否支持在使用反射时跳过某些列


SQLA版本:0.83和0.9.0b1。

'van'回答了我的问题,因此标记了问题的答案。
解决方案是在Table()上使用include\u columns参数。

您不能将
include\u columns
参数用于
Table
构造函数吗?或者你真的在你的反射处理器中执行了选择逻辑吗?van,你对include_列的建议奏效了。我过于关注侦听器函数,没有在Table()上看到这个简单的选项。谢谢