Empecé a aprender sequelize.js con node.js y me costó mucho definir las relaciones entre los modelos. Estoy tratando de crear 1:N relationship entre users y las tablas de roles , es decir, muchos usuarios pueden tener la misma función.
Problema
Cuando consulto el modelo de usuario para probar la relación definida, me da el error original: error: column "RoleId" does not exist .
modelo de roles:
'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Role extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static associate(models) { // define association here Role.hasMany(models.User, {as: 'users'}); } } Role.init({ id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, name:{ type: DataTypes.STRING, allowNull: false } }, { sequelize, modelName: 'Role', tableName: 'roles', }); return Role; };modelo de usuarios:
'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class User extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static associate(models) { // define association here // User.belongsTo(models.Role, {foreignKey: 'roleId', as: 'role'}); User.belongsTo(models.Role); } } User.init({ id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, name: { type: DataTypes.STRING, allowNull: false }, email: { type: DataTypes.STRING, allowNull: false }, mobile: { type: DataTypes.STRING, allowNull: false } // }, // roleId: { // type: DataTypes.STRING, // allowNull: false // } }, { sequelize, tableName: 'users', modelName: 'User', }); return User; };probador de relaciones código js:
const { User, Role } = require('./models'); User.findOne({ where: {email: 'admin@papertrader.org'} }) .then((findedUser) => { console.log(findedUser) }) .catch((err) => { console.log("Error while find user : ", err) });¿Puede alguien por favor guiarme qué está mal con mi código?