Python Sqlalchemy复合唯一约束创建两个单独的索引?

Python Sqlalchemy复合唯一约束创建两个单独的索引?,python,sqlalchemy,Python,Sqlalchemy,我正在用烧瓶用户做实验。在烧瓶用户和烧瓶之间使用Sqlalchemy 2.4.4和Sqlalchemy 1.3.20 我有一个模型,它将根据登录用户的“角色”列出可供其使用的操作。我使用的引擎是MySQL(Mariadb) UniqueConstraint()上的Sqlalchemy文档指出,上面的db.UniqueConstraint应该创建一个复合唯一键。不过,我在数据库中看到的是两个单独的索引:一个(action)是唯一的,但role\u id只是一个普通索引 我还尝试将约束命名为: db

我正在用烧瓶用户做实验。在烧瓶用户和烧瓶之间使用Sqlalchemy 2.4.4和Sqlalchemy 1.3.20

我有一个模型,它将根据登录用户的“角色”列出可供其使用的操作。我使用的引擎是MySQL(Mariadb)

UniqueConstraint
()上的Sqlalchemy文档指出,上面的
db.UniqueConstraint
应该创建一个复合唯一键。不过,我在数据库中看到的是两个单独的索引:一个(
action
)是唯一的,但
role\u id
只是一个普通索引

我还尝试将约束命名为:

db.UniqueConstraint(
    'action', 'role_id', name='uix_action_role'
)
但这似乎并没有创建具有该名称的索引


我是否使用了
UniqueConstraint
错误?

您需要将复合
UniqueConstraint
声明为
\uuuuu表\uu参数\uuuu
的一部分:

集体行动(基本):
__tablename_=“操作”
__表参数(db.UniqueConstraint(“操作”、“角色id”),)
id=db.Column(db.Integer(),主键=True)
action=db.Column(db.String(64),nullable=False,unique=True)
role\u id=db.Column(
db.Integer(),
db.ForeignKey(“roles.id”)
)

谢谢!工作得很有魅力。这在文件中并不清楚。
db.UniqueConstraint(
    'action', 'role_id', name='uix_action_role'
)