繁体   English   中英

Sequelize 迁移失败并显示 errno: 150“外键约束的格式不正确”

[英]Sequelize migration fails with errno: 150 "Foreign key constraint is incorrectly formed"

我使用此迁移创建了一个表:

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 “外键约束的格式不正确”

尝试以各种方式建立这种关联,正如我在互联网上看到的那样 - 都出现了相同的错误。 这里可能有什么问题? 我会提到第一个表(文章)已经存在于数据库中。

已解决:文档中似乎有错误。 这样做的方法是:

articleId: {
        type: Sequelize.INTEGER,
        references: {
          model:"articles",
          key:"id"
        },
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM