我正在尝试将现有的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来手动执行查询,那么一切都可以正常运行。
如何在表定义中指定要使用的架构?
答案 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')