Reputation: 36
I have 2 tables: admin_user and admin_account.
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;
};
and getting this error while creating the table:
Executing (default): CREATE TABLE IF NOT EXISTS admin_users
(id
INTEGER auto_increment , name
VARCHAR(255), email
VARCHAR(255) NOT NULL UNIQUE, user_name
VARCHAR(255) NOT NULL UNIQUE, createdAt
DATETIME NOT NULL, updatedAt
DATETIME NOT NULL, PRIMARY KEY (id
)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM admin_users
FROM milkman_prod1
Executing (default): CREATE TABLE IF NOT EXISTS admin_accounts
(admin_user_id
INTEGER , password
VARCHAR(255), createdAt
DATETIME NOT NULL, updatedAt
DATETIME NOT NULL, PRIMARY KEY (admin_user_id
), FOREIGN KEY (admin_user_id
) REFERENCES admin_users
(id
) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Unhandled rejection SequelizeDatabaseError: Cannot add foreign key constraint
Upvotes: 1
Views: 1397
Reputation: 1485
Please try with this code:
'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;
};
Upvotes: 1