Sequelize Typescript 删除级联抛出错误

cir*_*urn 5 sequelize.js typescript

我在 Group 和 GroupAttendee 之间建立了非常直接的 FK 关系。每当我打电话时,Group.destroy()我都会遇到 GroupAttendee 条目上的外键约束失败异常。我了解这些约束应该如何在数据库级别工作,但我似乎无法创建sequelize-typescript?/执行?他们。

我提供了模型的简化版本来演示我的设置:

import { Model, Column, AllowNull, HasMany, ForeignKey, DataType, BelongsTo } from "sequelize-typescript";
import { User } from "./User";

class Group extends Model<Group> {

  @AllowNull(false)
  @Column
  title: string;

  @AllowNull(false)
  @Column
  startDate: Date;

  @AllowNull(false)
  @Column
  endDate: Date;

  @HasMany(() => GroupAttendee)
  attendees: GroupAttendee[];
}

class GroupAttendee extends Model<GroupAttendee> {

  @ForeignKey(() => User)
  @Column(DataType.INTEGER)
  userId: number;

  @ForeignKey(() => Group)
  @Column(DataType.INTEGER)
  groupId: number;

  @BelongsTo(() => Group, {
    onUpdate: "CASCADE",
    onDelete: "CASCADE",
    hooks: true
  })
  group: Group;
}
Run Code Online (Sandbox Code Playgroud)

有人让它发挥作用吗?

Viv*_*shi 8

我认为你应该将级联放在GroupModel 上,而不是GroupAttendee像这样:

@HasMany(() => GroupAttendee , {
    onUpdate: "CASCADE",
    onDelete: "CASCADE",
    hooks: true
})
attendees: GroupAttendee[];
Run Code Online (Sandbox Code Playgroud)