我在 node.js 上运行 sequelize。对于表生成,定义了一个 queryInterface.createTable
命令。
为什么 allowNull: false
语句在 queryInterface.createTable
中定义时会被忽略?生成的列仍然设置了 allowNull: true 。
调用 createTable()
后,不是 sequelize.sync({force: true})
命令用于创建表吗?
queryInterface.createTable('events', { name: { allowNull: false, type: Sequelize.STRING },...
sequelize.sync({force: true});
// > column `name` has allowNull = true
sequelize.define('events', { name: { allowNull: false, type: DataTypes.STRING },...
sequelize.sync({force: true});
// > column `name` has allowNull = false
如您所见,如果我在
allowNull: false
中定义了 sequelize.define
,则约束设置正确。最佳答案
createTable()
与 migration 相关,其中 sync()
同步反射(reflect) define()
表模式的模型定义。
关于node.js - 为什么在 sequelize 的 createTable 函数中忽略了 allowNull (false) 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57537985/