sravs
sravs

Reputation: 25

How to add foreign key using sequelize mysql

"I have 2 tables "Users" and "Profile_personals". How do I add a foreign key constraint to my profile personals using my "user_id" primary that's inside my Users table? I'm working with node.js, sequelize mysql.

Users(parent Table):

    const Sequelize = require('sequelize')
    const db = require("../database/db.js")

    module.exports = db.sequelize.define(
        "users", 
        {
            user_id: {
                type: Sequelize.INTEGER,
                primaryKey: true,
                autoIncrement: true
            },
            email: {
                type: Sequelize.STRING
            },
            password: {
                type: Sequelize.STRING
            }
        },    
        {
            timestamps: false
        }
    )


    Personals(Child Table):


    const Sequelize = require('sequelize')
    const db = require("../database/db.js")

    module.exports = db.sequelize.define(
        'profile_personals', 
        {
            id: {
                type: Sequelize.INTEGER,
                primaryKey: true,
                autoIncrement: true
            },
            biography: {
                type: Sequelize.STRING
            }       
        },    
        {
            timestamps: false
        }
    )

Upvotes: 0

Views: 4112

Answers (1)

ccordon
ccordon

Reputation: 1102

Do it this way, I hope it's what you're looking for.

module.exports = db.sequelize.define(
    'profile_personals',
    {
        id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        biography: {
            type: Sequelize.STRING
        },
        // It is possible to create foreign keys:
        user_id: {
            type: Sequelize.INTEGER,

            references: {
                // This is a reference to another model
                model: Users,

                // This is the column name of the referenced model
                key: 'user_id'
            }
        }
    },
    {
        timestamps: false
    }
);

Upvotes: 3

Related Questions