node.js - 续集。使用迁移创建外键时如何将 OnUpdate 设置为 NO ACTION
问题描述
我是nodejs的新手。我用 expressJs 创建了一个模板。出于迁移和 ORM 的目的,我将 squelizeJs 与 mysql2 插件一起使用。我为我的表创建了迁移和模型。但是在创建外键时我无法更改默认行为,即更改 和 的onUpdate
值onDelete
如何在 sequelize 迁移中实现此 SQL 查询?
CONSTRAINT `fk_keywords_2`
FOREIGN KEY (`bot_id`)
REFERENCES `mydb`.`bots` (`id`)
ON DELETE RESTRICT
ON UPDATE NO ACTION)
我努力了
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Keywords', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER.UNSIGNED
},
bot_id: {
allowNull: false,
type: Sequelize.INTEGER.UNSIGNED,
references: {
model: 'Bots',
key: 'id'
},
onUpdate: 'NO ACTION',
onDelete: 'RESTRICT'
},
parent_id: {
type: Sequelize.INTEGER.UNSIGNED
},
keyword: {
allowNull: false,
type: Sequelize.STRING
},
time_duration: {
type: Sequelize.STRING
},
is_all_message_config: {
allowNull: false,
type: Sequelize.BOOLEAN,
defaultValue: 0
},
is_catch_all_config: {
allowNull: false,
type: Sequelize.BOOLEAN,
defaultValue: 0
},
blockedAt: {
type: Sequelize.DATE
},
deletedAt: {
type: Sequelize.DATE
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
}, {
uniqueKeys: {
keyword_unique_for_bot_and_parent: {
customIndex: true,
fields: ['bot_id', 'parent_id', 'keyword', 'deletedAt']
}
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Keywords');
}
};
它创建一个外键,但两者onUpdate
都onDelete
设置为RESTRICT
我浏览了他们的文档,但找不到有用的东西。
解决方案
您应该尝试在您的关键字模型文件中添加该操作,我们可以在其中定义关联。
static associate(models) {
// define association here
Keywords.hasMany(models.Bots, {
foreignKey: 'id',
onUpdate: 'RESTRICT',
onDelete: 'RESTRICT'
});
};
谢谢
推荐阅读
- python - Python Numpy将矩阵添加到原始矩阵(更改原始矩阵)
- java - Java中的参数/方法
- c# - 可以是 int 或 string 的可空泛型类型
- python - 密集层的输入 0 与该层不兼容:输入形状的预期轴 -1 具有值 3,但接收到形状为 (None, 1) 的输入
- wireguard - Wireguard vpn - 连接后,我可以访问“服务器”网络但不能访问互联网
- google-authentication - 在角度刷新组件 - 谷歌身份验证 - 身份验证后导航到内部页面
- git - 如何解码 git-log 中的转义文件名?
- hibernate - JPA @OneTomany @ManyToOne 多个实例
- file - NestJS 中的同步队列
- godot - Godot:我怎样才能在行进方向上旋转玩家?