After doing a lot of research I found an awesome solution provided by sequalize.js. I found a library Umzug Github. Let's look at the implementation...
    /**
     * Created by Ashraful Islam
     */
    const path = require('path');
    const Umzug = require('umzug');
    const database = /* Imported my database config here */;
    const umzug = new Umzug({
        storage: 'sequelize',
        storageOptions: {
            sequelize: database
        },
        // see: https://github.com/sequelize/umzug/issues/17
        migrations: {
            params: [
                database.getQueryInterface(), // queryInterface
                database.constructor, // DataTypes
                function () {
                    throw new Error('Migration tried to use old style "done" callback. Please upgrade to "umzug" and return a promise instead.');
                }
            ],
            path: './migrations',
            pattern: /\.js$/
        },
        logging: function () {
            console.log.apply(null, arguments);
        }
    });
    function logUmzugEvent(eventName) {
        return function (name, migration) {
            console.log(`${name} ${eventName}`);
        }
    }
    function runMigrations() {
        return umzug.up();
    }
    umzug.on('migrating', logUmzugEvent('migrating'));
    umzug.on('migrated', logUmzugEvent('migrated'));
    umzug.on('reverting', logUmzugEvent('reverting'));
    umzug.on('reverted', logUmzugEvent('reverted'));
    module.exports = {
        migrate: runMigrations
    };
Idea behind the scene
I clearly declare the migration directory. Also, define the file matching pattern. Umzug just read files from there and run the DB migration. An example migration file is following...
// 000_Initial.js
"use strict";
module.exports = {
    up: function(migration, DataTypes) {
        return migration.createTable('Sessions', {
            sid: {
                type: DataTypes.STRING,
                allowNull: false
            },
            data: {
                type: DataTypes.STRING,
                allowNull: false
            },
            createdAt: {
                type: DataTypes.DATE
            },
            updatedAt: {
                type: DataTypes.DATE
            }
        }).then(function() {
            return migration.addIndex('Sessions', ['sid']);
        });
    },
    down: function(migration, DataTypes) {
        return migration.dropTable('Sessions');
    }
};