Orm 有条件地对AllowFull约束进行续集
我需要在sequelize中进行迁移以更改列。如何基于另一列的值对一列使用AllowFull约束? 例如,考虑到我有列A和B。在迁移中,我想有如下类似的内容:Orm 有条件地对AllowFull约束进行续集,orm,sequelize.js,database-migration,Orm,Sequelize.js,Database Migration,我需要在sequelize中进行迁移以更改列。如何基于另一列的值对一列使用AllowFull约束? 例如,考虑到我有列A和B。在迁移中,我想有如下类似的内容: queryInterface.changeColumn('book', ['A'], { allowNull: false, where: { B: true } }); 但正如我在示例中所看到的,我们不能在changeColumn中使用“where”。我认为您必须使用customValidator解决以下问题:
queryInterface.changeColumn('book', ['A'], {
allowNull: false,
where: { B: true }
});
但正如我在示例中所看到的,我们不能在changeColumn中使用“where”。我认为您必须使用customValidator解决以下问题:
queryInterface.changeColumn('book', ['A'], {
allowNull: true,
validate: {
customValidator(value) {
if (value === null && this.B) {
throw new Error("A not be null if B === true");
}
}
}
});