Wednesday, 15 March 2017

Sequelize umzug migrations

I am using sequelize js and developed a node js application, which is deployed to production and have live DB.

while in development mode, if I need to alter the DB, I used to do it using Sequelize.sync({ force: true }) and it worked well.

But now, after development is done I want to alter a table and add a column to it.

I searched many posts but, didn't get an exact example on how to run these migrations.

I tried to use Umzug and run a migration, but it is throwing me errors.

Here is the code I tried,

migrations/barmigration.js:

"use strict";

module.exports = {

    up: function(migration, DataTypes) {
        return migration.addColumn(
        'Bars',
        'PrinterId',
        Sequelize.STRING
        )

    },

    down: function(migration, DataTypes) {
        return migration.removeColumn('Bars', 'PrinterId')
    }

};

Here is the umzug configuration:

var Umzug = require('umzug');
var Sequelize = require('sequelize');

var umzug = new Umzug({

    // storage: 'sequelize',
    model: 'Bar',


    storageOptions: {
        sequelize: Sequelize,
    },

    migrations: {
        path: './migrations',
        pattern: /\.js$/
    }

});

 umzug.up().then(function(migrations)  {
     console.log('Migration complete!');
 });

When I run that file, I am getting an error in up function, at this position return migration.addColumn

Error:

Unhandled rejection TypeError: Cannot read property 'addColumn' of undefined

So, the parameter migration seems to be undefined. Pls help me out.



via Sravan

No comments:

Post a Comment