问题描述
我正在尝试关联用户和角色,以便为用户分配角色。当我尝试添加用户时,我不断收到错误消息,如果没有关联它就可以工作,但我想关联它们。
这是我的用户模型
mutate
这是我的榜样
'use strict';
module.exports = (sequelize,DataTypes) => {
const User = sequelize.define("User",{
user_id: {
type: DataTypes.INTEGER,primaryKey: true,autoIncrement: true
},username: {
type: DataTypes.STRING,allowNull: false
},email: {
type: DataTypes.STRING,password: {
type: DataTypes.STRING,first_name: {
type: DataTypes.STRING,last_name: {
type: DataTypes.STRING,img_src: DataTypes.STRING,//updated_at: DataTypes.DATE,status: {
type: DataTypes.INTEGER,defaultValue: 1
},//active: DataTypes.BOOLEAN
},{
timestamps: true,underscored: false,freezeTableName: true,tableName: 'user'
});
User.associate = (models) => {
User.belongsTo(models.Role,{ foreignKey: 'role_id'})};
return User;
}
module.exports = (sequelize,DataTypes) => {
const Role = sequelize.define('Role',{
role_id: {
type: DataTypes.INTEGER,title: DataTypes.STRING,description: DataTypes.STRING
},tableName: 'role',initialAutoIncrement: 2000
});
Role.associate = (models) => {
Role.hasMany(models.User,{ as: 'users',foreignKey: 'user_id' })};
return Role;
}
解决方法
我想最好的方法是在 User 模型上添加一个名为 role_id 的新列,以及关联:
User.associate = (models) => { User.hasOne(models.Role,{ foreignKey: 'role_id' })};
删除所有其他关联。我建议您恢复所有迁移,进行我所说的这些更改,然后再次运行迁移