序列化正在运行的迁移结果无法读取未定义的属性“键”

时间:2018-10-22 03:24:32

标签: javascript node.js orm sequelize.js

我想更新列以将not null设置为false,但是运行db:migration失败并显示以下错误消息:

  

无法读取未定义的属性“键”

以下是迁移代码:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
   return queryInterface.changeColumn('Notes', 'title', {
     allowNull: false
   });
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.changeColumn('Notes', 'title', {
      allowNull: true
    });
  }
};

接着document,我的代码似乎没什么问题。

表和字段存在,我怎么了?

3 个答案:

答案 0 :(得分:1)

我自己遇到了这个问题。根据我在源代码中看到的内容,Sequelize假定您在更改列时始终提供类型。在链接的文档中也可以看到它:“请确保,您正在完全描述新的数据类型。”

答案 1 :(得分:0)

只是提示,您如何解决它。我认为查询接口对象无法找到必须迁移的表的名称或列。您是否可以仅打印Sequelize对象和其中的模型并放入与Sequelize对象相同的名称。我尝试过相同的库,它的工作原理就像一个魅力。

答案 2 :(得分:0)

您必须提供要更改或不更改的列类型。

'use strict';

module.exports = {
 up: (queryInterface, Sequelize) => {
  return queryInterface.changeColumn('Notes', 'title', {
    type: Sequelize.STRING,
    allowNull: false
  });
 },

 down: (queryInterface, Sequelize) => {
   return queryInterface.changeColumn('Notes', 'title', {
     type: Sequelize.STRING,
     allowNull: true
   });
 }
};