我想更新列以将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,我的代码似乎没什么问题。
表和字段存在,我怎么了?
答案 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
});
}
};