这是我的模型基类:
@declarative_mixin
class FixtureMixin:
__table_args__ = {
"mysql_engine": "InnoDB",
"mysql_charset": "utf8",
"extend_existing": True,
}
pass
对于子类,我希望能够在
__table_args__
中配置索引,同时保留公共配置,如下所示:
class TestTable(db.Model, FixtureMixin):
__tablename__ = "test_table"
__table_args__ = FixtureMixin.__table_args__.copy()
__table_args__.update({
"schema": "test",
"comment": "xxx",
"mysql_indexes": [Index('unique_org_test_key', "name", "org_id", unique=True)]
})
pass
但是,当我
create_all
时,它并没有按预期工作。想要达到预期的效果该怎么办?
组合参数,改变参数传递方式,就像:
class TestTable(db.Model, FixtureMixin):
__tablename__ = "test_table"
__table_args__ = (
db.UniqueConstraint("name", name='unique_org_test_key'),
dict(
**FixtureMixin.__table_args__,
schema="test",
comment="xxx"
)
)