Я пытаюсь удалить записи в таблице file
, которая зависит от таблицы fileDevice
, используя TypeORM.
На самом деле я получаю эту ошибку
"обновить или удалитьдля таблицы "file" нарушается ограничение внешнего ключа "FK_4dcd99898oij89898909c2603" для таблицы "file_device" "
Вот как я объявляю таблицы:
export class File {
@PrimaryGeneratedColumn()
id: number;
@Column({ nullable: false })
idFonc: number;
@Column({ nullable: false })
version: number;
@Column('varchar', { length: 100, nullable: false })
filename: string;
@Column({ nullable: true })
lastModified: Date;
@Column({ nullable: false })
device: boolean;
@Column({ nullable: false })
typeId: number;
@ManyToOne(type => Type, { nullable: false })
@JoinColumn({ referencedColumnName: 'id' })
type: Type;
@OneToMany(type => FileDevice, filedevice => filedevice.file)
fileDevice: FileDevice[];
}
И fileDevice
export class FileDevice {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(type => File, f => f.fileDevice, {
nullable: false,
onDelete: 'CASCADE',
})
file: File;
@Column('varchar', { length: 100, nullable: false })
deviceid: string;
}
с помощью TypeORM я удаляю несколько файлов:
this.fileRepository.remove(filesListToDelete);
Я получаю ошибку, упомянутую выше.
Я попытался добавить onDelete: 'CASCADE'
в определение сущности:
@OneToMany(type => FileDevice, filedevice => filedevice.file, {
onDelete: 'CASCADE',
})
fileDevice: FileDevice[];
Но у меня все та же ошибка.
Должен ли я сначала удалить таблицу fileDevice
, а затем удалить filesList
на file
таблицу?