如何在SQLAlchemy的`__table_args__`中传递位置和关键字参数
问题内容:
是否可以使用外键引用并在sqlalchemy的同一表上具有oracle分区?
这是将oracle分区定义__table_args__
为dict的方式
class SQLAlchemyTable(mx.InsertedAtUpdatedAtMixin, Base):
__tablename__ = 'SQLALCHEMY_TABLE'
__table_args__ = {
'info': {
'oracle_partition': """
PARTITION BY RANGE (PARTITION_DATE) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
( PARTITION p_init VALUES LESS THAN (TO_DATE('07-12-2018','DD-MM-YYYY')))
"""
},
}
我在文档中发现,ForeignKeyConstraint定义在其中,__table_args__
但定义为元组而不是字典
__table_args__ = (
ForeignKeyConstraint(('LIST', 'STATE'), ['CODES.LIST_ID', 'CODES.ID']),
)
有什么帮助吗?
问题答案:
您可以在中传递位置参数和关键字参数__table_args__
,如“表配置”中所示。使用保存位置参数的元组和关键字参数字典作为元组的最后一项:
class SQLAlchemyTable(mx.InsertedAtUpdatedAtMixin, Base):
...
__table_args__ = (
ForeignKeyConstraint(('LIST', 'STATE'), ['CODES.LIST_ID', 'CODES.ID']),
{
'info': {
'oracle_partition': """
PARTITION BY RANGE (PARTITION_DATE) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
( PARTITION p_init VALUES LESS THAN (TO_DATE('07-12-2018','DD-MM-YYYY')))
"""
}
}
)