是否可以使用迁移文件更改列的“验证”元数据?我尝试了 queryInterface.changeColumn 方法,它似乎只能更改文档中提到的三个元数据(defaultValue、allowNull 和类型)。
我试过在迁移文件的“向上”对象中做这样的事情:
queryInterface.changeColumn(
'tableName',
'columnName',
{
validate: {
is: /new_regex_validation/
}
}
)
但是,当我运行“sequelize db:migrate”时,上述尝试对我不起作用
为了简单起见,我将使用表定义来详细说明我的问题:
我正在尝试像这样更改一个已经存在的表:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate: {
is: /some_regex_validation/
}
}
})
使用 sequelize 迁移到这里:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate: {
is: /a_new-or-different_regex_validation/
}
}
})
或在使用 sequelize 迁移时简单地删除验证元数据:
var tableName = sequelize.define('tableName', {
columnName: {
type: DataTypes.STRING,
unique: true,
allowNull: false
}
})
有什么想法吗?
最佳答案
验证发生在客户端,而不是数据库。您不需要为此进行迁移。
关于javascript - Sequelize : Change "validate" meta data of column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39812721/