SQLAlchemy 级联删除多对多关系

mic*_*zer 5 python sqlalchemy flask flask-sqlalchemy

我正在尝试使用 SQLAlchemy 对我的数据库进行级联删除。我有表格(删除了不相关的字段):

action_permissions_to_groups = db.Table('action_permissions_to_groups', 
    db.Column('group_id', db.Integer, db.ForeignKey('group.id',  ondelete='cascade')),
    db.Column('action_permission_id', db.Integer, db.ForeignKey('action_permission.id',  ondelete='cascade'))
)

class Group(db.Model, MyModel):
    id = db.Column(db.Integer, primary_key=True)
    action_permissions = db.relationship('ActionPermission', secondary=action_permissions_to_groups, cascade='delete')


class ActionPermission(db.Model, MyModel):
    id = db.Column(db.Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

在英语中,多个Groups有多个ActionPermissions。当我删除 a 时Group,我希望action_permissions_to_groups删除表中与要删除group_id的组匹配的所有行中的所有内容。

当我尝试删除一个组时,上面的代码给了我以下错误:

InvalidRequestError:由于刷新期间先前的异常,此会话的事务已回滚。要使用此会话开始新事务,请首先发出 Session.rollback()。原始异常是:表“action_permissions_to_groups”上的 DELETE 语句预期删除 11 行;只有 12 个匹配。

有谁知道我做错了什么?

谢谢!!