使用Sequelize CLI进行MySql迁移。无法添加外键约束

时间:2019-02-08 10:12:23

标签: mysql sql sequelize.js sequelize-cli

我要迁移此列:

countryId: {
   type: Sequelize.DataTypes.CHAR(2),
   allowNull: true,
   references: {
    model: 'country',
    key: 'country_code'
   },
   field: 'country_id'
},

国家/地区代码:

countryCode: {
  type: DataTypes.CHAR(2),
  allowNull: false,
  primaryKey: true,
  field: 'country_code'
},

完整的console.log:

    CREATE TABLE IF NOT EXISTS `address` (`address_id` BIGINT NOT NULL
 auto_increment , `state_id` INTEGER(11) UNIQUE, `country_id` CHAR(2), 
 PRIMARY KEY (`address_id`), FOREIGN KEY (`state_id`) REFERENCES 
`province` (`province_id`), FOREIGN KEY (`country_id`) REFERENCES 
`country` (`country_code`)) ENGINE=InnoDB;

但是我明白了

  

错误:无法添加外键约束

当我将unique: true添加到country_id时,由于某种原因它仍然不起作用。

1 个答案:

答案 0 :(得分:0)

我认为您必须使用此处描述的命令手动设置关联: http://docs.sequelizejs.com/manual/tutorial/associations.html