2 var BPromise = require('bluebird');
4 var logger = require('../config/logger')('migration');
5 var util = require('util');
7 var Migration = function(queryInterface) {
8 this.queryInterface = queryInterface;
11 Migration.prototype.changeColumn = function(table, column, type) {
12 return this.queryInterface
13 .changeColumn(table, column, type)
15 logger.info('Changed column %s in table %s', column, table);
17 .catch(function(err) {
18 logger.info(util.inspect(err, {
25 Migration.prototype.addColumn = function(table, column, type) {
26 return this.queryInterface
27 .addColumn(table, column, type)
29 logger.info('Added column %s to %s', column, table);
31 .catch(function(err) {
32 logger.info(JSON.stringify(err));
39 up: function(queryInterface, Sequelize) {
40 var migration = new Migration(queryInterface);
42 migration.changeColumn('tools_trunks', 'sendrpid', {
43 type: Sequelize.ENUM('yes', 'no', 'pai'),
47 migration.addColumn('mail_servers_out', 'authentication', {
48 type: Sequelize.BOOLEAN,
52 migration.changeColumn('voice_queues', 'timeout', {
53 type: Sequelize.INTEGER(11),
57 migration.changeColumn('voice_queues', 'retry', {
58 type: Sequelize.INTEGER(11),
62 migration.changeColumn('users', 'allow', {
63 type: Sequelize.STRING,
65 defaultValue: 'ulaw;alaw;gsm'
68 migration.changeColumn('tools_trunks', 'allow', {
69 type: Sequelize.STRING,
71 defaultValue: 'ulaw;alaw;gsm'
74 migration.addColumn('voice_queues', 'dialCheckDuplicateType', {
75 type: Sequelize.ENUM('always', 'never', 'onlyIfOpen'),
76 defaultValue: 'always'
79 migration.addColumn('campaigns', 'dialCheckDuplicateType', {
80 type: Sequelize.ENUM('always', 'never', 'onlyIfOpen'),
81 defaultValue: 'always'
84 migration.addColumn('mail_accounts', 'email', {
85 type: Sequelize.STRING
89 down: function(queryInterface, Sequelize) {
90 var migration = new Migration(queryInterface);