2 var BPromise = require('bluebird');
4 var logger = require('../config/logger')('migration');
6 var Migration = function(queryInterface) {
7 this.queryInterface = queryInterface;
10 Migration.prototype.addColumn = function(table, column, type) {
11 return this.queryInterface
12 .addColumn(table, column, type)
14 logger.info('Added column %s to %s', column, table);
16 .catch(function(err) {
17 logger.info(JSON.stringify(err));
22 Migration.prototype.removeColumn = function(table, column) {
23 return this.queryInterface
24 .removeColumn(table, column)
26 logger.info('Removed column %s from %s', column, table);
28 .catch(function(err) {
29 logger.info(JSON.stringify(err));
34 Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
35 return this.queryInterface
36 .renameColumn(table, oldColumn, newColumn)
38 logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
40 .catch(function(err) {
41 logger.info(JSON.stringify(err));
47 up: function(queryInterface, Sequelize) {
48 var migration = new Migration(queryInterface);
49 migration.addColumn('cm_hopper_final', 'deletedat', {
52 migration.addColumn('users', 'phoneBarRingInUse', {
53 type: Sequelize.BOOLEAN,
56 migration.addColumn('cm_hopper_final', 'deleted', {
57 type: Sequelize.STRING,
60 migration.renameColumn('cm_hopper_final', 'reschedule', 'rescheduled');
63 down: function(queryInterface, Sequelize) {
64 var migration = new Migration(queryInterface, Sequelize);
65 migration.removeColumn('users', 'phoneBarRingInUse');
66 migration.removeColumn('cm_hopper_final', 'deletedat');
67 migration.removeColumn('cm_hopper_final', 'deleted');
68 migration.renameColumn('cm_hopper_final', 'rescheduled', 'reschedule');