我正在尝试将现有的 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 手动执行查询,那么一切正常。
如何在表定义中指定要使用的架构?
最佳答案
好的,在 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')
关于python - 带有 SQLAlchemy 的 Db2,如何指定默认模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21908852/