Hello,
Im learning how to use sequelize to implement some tables on postgresql but i have the error "ERROR: MessageTypes is not defined" when i run the command "sequelize db:migrate"
the steps i follow before this error were,
- run those commands:
"sequelize model:create --name DataMessagesLog --attributes epochId:bigint,jsonVarBody:json"
"sequelize model:create --name MessageType --attributes name:string,description:string"
- update the models and migrations like this
MODELS
messagetype.js
'use strict';
module.exports = (sequelize, DataTypes) => {
var MessageType = sequelize.define('MessageType', {
name: DataTypes.STRING,
description: DataTypes.STRING
}, {});
MessageType.associate = function(models) {
// associations can be defined here
MessageType.belongsTo(DataMessagesLog);
};
return MessageType;
};
datamessageslog.js
'use strict';
module.exports = (sequelize, DataTypes) => {
var DataMessagesLog = sequelize.define('DataMessagesLog', {
epochId: DataTypes.BIGINT,
jsonVarBody: DataTypes.JSON
}, {});
DataMessagesLog.associate = function(models) {
// associations can be defined here
DataMessagesLog.hasMany(MessageType, {as: 'idMsgType'});
};
return DataMessagesLog;
};
MIGRATIONS20180315205058-create-message-type.js
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('MessageTypes', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
name: {
type: Sequelize.STRING
},
description: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('MessageTypes');
}
};
20180315205054-create-data-messages-log.js
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('DataMessagesLogs', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
epochId: {
type: Sequelize.BIGINT
},
idMsgType:{
onDelete: 'CASCADE',
references: {
model: MessageTypes,
key: 'id'
},
type:Sequelize.INTEGER
},
jsonVarBody: {
type: Sequelize.JSON
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('DataMessagesLogs');
}
};
-Then, run "sequelize db:migrate " and it returns "ERROR: MessageTypes is not defined"
i read a lot of guides but cant solve this simple error.
by the way im using node v6.10.2 and sequelize: "^4.35.2"
Thx for your time.