orm - 有条件地续集allownull约束
问题描述
我需要在 sequelize 中进行迁移以更改列。如何根据另一列的值对一列使用 allowNull 约束?例如,考虑我有 A 列和 B 列。在迁移中,我想要如下所示:
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");
}
}
}
});
推荐阅读
- python - 具有不同名称的字典以及如何打印名称
- python - Tweepy 4.0:“'Listener'对象没有属性'running'”错误?
- python - 直方图 - 当有 2 个以上的同一个单词的字母时下一行
- python - 在 python 中保存和加载函数
- flutter - Flutter 视频播放器,例如 Youtube、Amazon Prime
- python - 如何在条形图上显示平均值
- mysql - Mysql FIND_IN_SET GET ALL 列
- c++ - 从现代 C++ 中的命令类型中查找命令处理程序
- testing - 在 Netty 服务器中添加延迟
- javascript - 如何在反应中将项目添加到本地存储?