Db2用SQLAlchemy,如何指定默认架构

时间:2014-02-20 13:11:09

标签: python sqlalchemy db2

我正在尝试将现有的DB2数据库映射到新的python ORM对象。 我写了一个非常简单的映射器类:

class Storage(Base):

    __tablename__ = 'T_RES_STORAGE_SUBSYSTEM'        

    id = Column(Integer,primary_key=True,name='SUBSYSTEM_ID')
    name = Column(String(255),name='NAME')
    namealias = Column(String(256),name='NAME_ALIAS')

但是当我尝试映射它时,通过执行查询,它会将DB2ADMIN。tablename放在每个查询的前面,这当然会导致错误。如果我通过在其前面添加TPC。tablename来手动执行查询,那么一切都可以正常运行。

如何在表定义中指定要使用的架构?

1 个答案:

答案 0 :(得分:3)

好的,在mustaccio的帮助下,我发现在table_args你需要添加schema

class Storage(Base):

    __tablename__ = 'T_RES_STORAGE_SUBSYSTEM'
    __table_args__ = {'schema' : 'TPC'}

    id = Column(Integer,primary_key=True,name='SUBSYSTEM_ID')
    name = Column(String(255),name='NAME')
    namealias = Column(String(256),name='NAME_ALIAS')