node.js - 为什么在 sequelize 的 createTable 函数中忽略了 allowNull (false) 选项

标签 node.js database-design sequelize.js

我在 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 ,则约束设置正确。
  • “Sequelize ”:“^5.15.0”/mysql-5.7.27-winx64
  • 最佳答案

    createTable()migration 相关,其中 sync() 同步反射(reflect) define() 表模式的模型定义。

    关于node.js - 为什么在 sequelize 的 createTable 函数中忽略了 allowNull (false) 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57537985/

    相关文章:

    angularjs - 在完成 API Nodejs 之前提示用户警告

    SQL - 选择同一列,两次

    node.js - 我的数据库未在 Sequelize 中更新

    javascript - 使用 node.js 加载 tensorflow.js 时出错

    javascript - javascript库如何忽略某些参数,或使某些函数参数为 "optional"?

    mysql - 如何查询 mySQL 中的多个表

    javascript - 如何在 Node.js 网站中组织模型?

    sequelize.js - 在 sequelize 中使用 Op.contain 查询时出错。

    javascript - 在 JavaScript 中比较 2 个数组

    html - 动态表单和数据库架构