我使用此迁移创建了一个表:
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('articles', {
id: { type: Sequelize.INTEGER, primaryKey: true,autoIncrement: true },
title: { type: Sequelize.STRING },
content: { type: Sequelize.TEXT },
createdAt: {type:Sequelize.DataTypes.DATE},
updatedAt: {type:Sequelize.DataTypes.DATE}
},
);
然后,在新的迁移中,我试图创建另一个表,该表将引用第一个表:
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('comments', {
id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
title: { type: Sequelize.STRING },
content: { type: Sequelize.TEXT },
createdAt: { type: Sequelize.DataTypes.DATE },
updatedAt: { type: Sequelize.DataTypes.DATE },
articleId: {
type: Sequelize.INTEGER,
references: {
model: {
tableName: 'articles',
schema: 'schema'
},
key: 'id'
},
}
},
);
}
我知道
errno:150“外键约束的格式不正确”
尝试以各种方式建立这种关联,就像我在互联网上看到的一样-都存在相同的错误。 这可能是什么问题?我将提到数据库中已经存在第一个表(文章)。
答案 0 :(得分:0)
已解决:看来文档有误。这样做的方法是:
articleId: {
type: Sequelize.INTEGER,
references: {
model:"articles",
key:"id"
},
}