Python Sqlalchemy复合唯一约束创建两个单独的索引?
我正在用烧瓶用户做实验。在烧瓶用户和烧瓶之间使用Sqlalchemy 2.4.4和Sqlalchemy 1.3.20 我有一个模型,它将根据登录用户的“角色”列出可供其使用的操作。我使用的引擎是MySQL(Mariadb)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
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'
)