Mysql 未处理的拒绝SequelizeDatabaseError:无法添加外键约束

Mysql 未处理的拒绝SequelizeDatabaseError:无法添加外键约束,mysql,sequelize.js,Mysql,Sequelize.js,我有两个表:管理员用户和管理员帐户 const Sequelize = require('sequelize'); module.exports = (sequelize, DataTypes) => { var admin_user = sequelize.define('admin_user', { id: { autoIncrement: true, type: Sequelize.INTEGER, primaryKey: true

我有两个表:管理员用户和管理员帐户

const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
  var admin_user = sequelize.define('admin_user', {
    id: {
      autoIncrement: true,
      type: Sequelize.INTEGER,
      primaryKey: true
    },
    name: {
      type: Sequelize.STRING
    },
    email: {
      type: Sequelize.STRING,
      allowNull: false,
      unique: true,
      validate: {
        isEmail: true,
      }
    },
    user_name:{
      type: Sequelize.STRING,
      allowNull: false,
      unique: true
    }
  });

  admin_user.associate = (models) =>{
    admin_user.hasOne(models.admin_account, { foreignKey: 'admin_user_id' });
  };

  return admin_user;
};


'use strict';
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
  var admin_account = sequelize.define('admin_account', {
    admin_user_id:{
      type: Sequelize.INTEGER,
      primaryKey: true
    },
    password: {
      type: Sequelize.STRING
    }
  });
  return admin_account;
};
创建表时出现此错误:

执行(默认):如果不存在,则创建表
admin\u users
id
INTEGER auto\u increment,
name
VARCHAR(255),
email
VARCHAR(255)NOT NULL UNIQUE,
user\u name
VARCHAR(255)NOT NULL UNIQUE,
createdAt
DATETIME NOT NULL,
updatedAt
DATETIME NOT NULL,主键(
id
)引擎=InnoDB; 正在执行(默认):显示来自
admin\u用户的索引
FROM
milkman\u prod1
执行(默认):如果不存在,则创建表
admin\u帐户
admin\u用户id
整数,
password
VARCHAR(255),
createdAt
DATETIME非空,
updatedAt
DATETIME非空,主键(
admin\u用户id
),外键(
admin\u用户id
)在DELETE上引用
admin\u用户
id
)在更新级联上设置NULL)引擎=InnoDB;
未处理的拒绝SequelizeDatabaseError:无法添加外键约束

请尝试使用以下代码:

    'use strict';
    const Sequelize = require('sequelize');
    module.exports = (sequelize, DataTypes) => {
      var admin_account = sequelize.define('admin_user', {
        admin_user_id:{
          type: Sequelize.INTEGER,
          primaryKey: true
        },
        password: {
          type: Sequelize.STRING
        }
      });
admin_account.associate = (models) =>{
    admin_account.belongsTo(models.admin_user);
  };
      return admin_account;
    };

感谢Riajul。它将消除错误,但不会在表中输入任何内容。我提出了另一个解决方案:admin_user.associate=(models)=>{admin_user.hasOne(models.admin_帐户,{foreignKey:{name:'admin_user_id',allowNull:false},onDelete:'restrict',onUpdate:'restrict'});