我正在尝试删除关联的农民时删除任务。我读过一个续集文档,我在那里做了相同的解决方案。但我无法自动删除任务。我也尝试过以下链接中的解决方案:
Sequelize onDelete not working
Sequelize.js onDelete: 'cascade' is not deleting records sequelize
我正在使用sequelizejs和mysql。
我的模特:
Task.js
lrwxr-xr-x 1 root wheel 45B 22 fév 11:42 libcudnn.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn.dylib
lrwxr-xr-x 1 root wheel 48B 26 fév 01:01 libcudnn_static.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn_static.a
Farmer.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;
};
我还能做什么?
另外,我是否需要在mysql相关表上设置'on delete cascade'?如果我不这样做,sequelize定义关联onDelete不起作用?
答案 0 :(得分:0)
您可以在任务定义中省略FarmerId
。 Sequelize通过将Task与Farmer相关联,自动知道有FarmerId
。试试看,其他一切看起来都很平常。