我在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;
}
有人让它起作用吗?
答案 0 :(得分:1)
我认为您应该像这样:Group
而不是GroupAttendee
上层叠模型:
@HasMany(() => GroupAttendee , {
onUpdate: "CASCADE",
onDelete: "CASCADE",
hooks: true
})
attendees: GroupAttendee[];