如何在SQLAlchemy中的`__table_args__`中传递位置和关键字参数



在sqlalchemy中,是否可以使用外键引用并在同一表上有oracle分区?

以下是如何在__table_args__中将oracle分区定义为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')))
"""
}
}
)