rdio-scanner/server/migrations/20191029092201-create-rdio-scanner-call.js
2019-11-18 13:06:09 -05:00

92 lines
2.6 KiB
JavaScript

'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.createTable('rdioScannerCalls', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
},
audio: {
allowNull: false,
type: Sequelize.BLOB('long'),
},
emergency: {
allowNull: false,
type: Sequelize.BOOLEAN,
},
freq: {
allowNull: false,
type: Sequelize.INTEGER,
},
freqList: {
allowNull: false,
type: Sequelize.JSON,
},
startTime: {
allowNull: false,
type: Sequelize.DATE,
},
stopTime: {
allowNull: false,
type: Sequelize.DATE,
},
srcList: {
allowNull: false,
type: Sequelize.JSON,
},
system: {
allowNull: false,
type: Sequelize.INTEGER,
},
talkgroup: {
allowNull: false,
type: Sequelize.INTEGER,
},
}, { transaction });
await queryInterface.addIndex('rdioScannerCalls', ['startTime'], { transaction });
await queryInterface.addIndex('rdioScannerCalls', ['system'], { transaction });
await queryInterface.addIndex('rdioScannerCalls', ['talkgroup'], { transaction });
await transaction.commit();
} catch (err) {
await transaction.rollback();
throw err;
}
},
down: async (queryInterface) => {
const transaction = queryInterface.sequelize.transaction();
try {
await queryInterface.dropTable('rdioScannerCalls', { transaction });
await transaction.commit();
} catch (err) {
await transaction.rollback();
throw err;
}
}
};