Sequelize.js foreign key Sequelize.js foreign key mysql mysql

Sequelize.js foreign key


Before I had the same problem, and solved when I understood the functioning of settings Sequelize.

Straight to the point!

Suppose we have two objects: Person and Father

var Person = sequelize.define('Person', {        name: Sequelize.STRING});var Father = sequelize.define('Father', {        age: Sequelize.STRING,        //The magic start here        personId: {              type: Sequelize.INTEGER,              references: 'persons', // <<< Note, its table's name, not object name              referencesKey: 'id' // <<< Note, its a column name        }});Person.hasMany(Father); // Set one to many relationship

Maybe it helps you

Edit:

You can read this to understand better:

http://docs.sequelizejs.com/manual/tutorial/associations.html#foreign-keys


For Sequelize 4 this has been updated to the following:

const Father = sequelize.define('Father', {        name: Sequelize.STRING});const Child = sequelize.define('Child', {    age: Sequelize.STRING,    fatherId: {       type: Sequelize.INTEGER,       references: {          model: 'fathers', // 'fathers' refers to table name          key: 'id', // 'id' refers to column name in fathers table       }    }});Father.hasMany(Child); // Set one to many relationship

Edit:You can read more on associations at https://sequelize.org/master/manual/assocs.html


You need to add foreignKeyConstraint: true

Try:

MainClient.hasOne(MainDashboard, { foreignKey: 'idClient', foreignKeyConstraint: true })