在后缀中,您可以在迁移中记录bulkUpdate。但是我希望使用fullName属性的值生成一个@handle属性。是否有一种方法可以访问我正在更新的记录(比如this),比如:
'use strict';
module.exports = {
up: function(queryInterface, Sequelize) {
return queryInterface.bulkUpdate('users', { handle: this.fullName.replace(/\s+/g, '') });
},
down: function(queryInterface, Sequelize) {
return queryInterface.bulkDelete('roles', null, {});
}
};发布于 2021-12-17 18:12:59
bulkUpdate没有模型实例来更新它们。它生成针对DB执行的UPDATE SQL查询,因此您需要使用DB函数来替换将更新的每条记录中的某个子字符串。这样的函数在很大程度上依赖于某种类型的DBMS,所以看看DBMS文档中关于如何实现这种替换的文档。
看起来可能是这样的:
queryInterface.bulkUpdate('users', {
handle: Sequelize.fn('replace', Sequelize.col('fullName'), 'substring to be replaced', 'substring to use as a replcement')
})不能保证DBMS支持用于替换a.substring的函数中的正则表达式。
https://stackoverflow.com/questions/70396965
复制相似问题