gpt4 book ai didi

javascript - 在NodeJS中,有没有类似dependent : :destroy in Ruby for associated records?的方法

转载 作者:行者123 更新时间:2023-11-30 22:24:34 24 4
gpt4 key购买 nike

我正在尝试在删除关联农民时删除任务。我已经阅读了 Sequelize 文档,并且在那里完成了相同的解决方案。但是我不能自动删除任务。我还尝试了以下链接中的解决方案:

Sequelize onDelete not working

Sequelize.js onDelete: 'cascade' is not deleting records sequelize

我在 mysql 中使用 sequelizejs。

我的模型:

任务.js

'use strict';
var Farmer = require('./farmer');
module.exports = function(sequelize, DataTypes) {
var Task = sequelize.define('Task', {
title: DataTypes.STRING,
deadline: DataTypes.DATE,
description: DataTypes.TEXT,
FarmerId: {
type: DataTypes.INTEGER,
references: {
// This is a reference to another model
model: Farmer,
// This is the column name of the referenced model
key: 'id'
}
}
}, {
classMethods: {
associate: function(models) {
Task.belongsTo(models.Farmer, {foreignKey: 'FarmerId'});
// associations can be defined here
}
}
});
return Task;
};

农夫.js

'use strict';
var validator = require('validator');
module.exports = function(sequelize, DataTypes) {
var Farmer = sequelize.define('Farmer', {
username:{
type: DataTypes.STRING,
allowNull: false,
},
address: DataTypes.STRING,
email: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate: {
isEmail: { args: true, msg: "not a valid email!" },
len: { args: [0, 100], msg: "email can't be bigger than 100"},
}
},
phone:{
type: DataTypes.STRING,
allowNull: false,
},
}, {
classMethods: {
associate: function(models) {
Farmer.hasMany(models.Task, {onDelete: 'CASCADE', hooks:true});
// associations can be defined here
}
}
});
return Farmer;
};

我还能做什么?

还有,我需要在mysql相关表上设置'on delete cascade'吗?如果我不这样做,sequelize define association onDelete 不起作用?

最佳答案

您可以在任务定义中省略 FarmerId。 Sequelize 通过将 Task 与 Farmer 关联,自动知道有一个 FarmerId。试试看,其他一切似乎都很正常。

关于javascript - 在NodeJS中,有没有类似dependent : :destroy in Ruby for associated records?的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35647513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com