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