Built motion from commit c56b56e.|0.0.125
[motion.git] / server / migrations / 20160414162957-sms_account.js
1 'use strict';
2
3 module.exports = {
4   up: function(queryInterface, Sequelize) {
5     queryInterface.addColumn('sms_accounts', 'smstype', {
6       type: Sequelize.ENUM('basic', 'classic', 'classic+')
7     });
8     queryInterface.addColumn('sms_accounts', 'remote', {
9       type: Sequelize.STRING
10     });
11     queryInterface.changeColumn(
12       'sms_accounts',
13       'type', {
14         type: Sequelize.ENUM('twilio', 'skebby')
15       }
16     );
17     queryInterface.changeColumn(
18       'sms_accounts',
19       'phone', {
20         type: Sequelize.STRING,
21         unique: true,
22         validate: {
23           is: /^[0-9]+$/
24         }
25       }
26     );
27     queryInterface.addColumn('sms_applications', 'SmsAccountId', Sequelize.INTEGER);
28     queryInterface.sequelize.query(
29       "ALTER TABLE sms_applications ADD CONSTRAINT sms_applications_ibfk_1 FOREIGN KEY (SmsAccountId) REFERENCES motion.sms_accounts(id) ON DELETE CASCADE ON UPDATE CASCADE;"
30     );
31   },
32
33   down: function(queryInterface, Sequelize) {
34     queryInterface.removeColumn('sms_accounts', 'smstype');
35     queryInterface.removeColumn('sms_accounts', 'remote');
36     queryInterface.changeColumn(
37       'sms_accounts',
38       'type', {
39         type: Sequelize.STRING
40       }
41     );
42     queryInterface.changeColumn(
43       'sms_accounts',
44       'phone', {
45         type: Sequelize.INTEGER,
46         unique: true
47       }
48     );
49     queryInterface.removeColumn('sms_applications', 'SmsAccountId');
50     queryInterface.sequelize.query(
51       'ALTER TABLE sms_applications DROP CONSTRAINT sms_applications_ibfk_1;'
52     );
53
54   }
55 };