Files
drone-detector/server/migrations/20250828000001-add-device-approval.js
2025-09-13 15:12:34 +02:00

49 lines
1.6 KiB
JavaScript

/**
* Migration: Add is_approved field to devices table
* This migration adds device approval functionality to the system
*/
'use strict';
module.exports = {
async up(queryInterface, Sequelize) {
// Check if is_approved column already exists
const tableDescription = await queryInterface.describeTable('devices');
if (!tableDescription.is_approved) {
// Add is_approved column to devices table
await queryInterface.addColumn('devices', 'is_approved', {
type: Sequelize.BOOLEAN,
defaultValue: false,
allowNull: false,
comment: 'Whether the device is approved to send data'
});
// Add index for is_approved for better query performance
await queryInterface.addIndex('devices', ['is_approved'], {
name: 'devices_is_approved_idx'
});
// Approve all existing devices by default (backward compatibility)
await queryInterface.sequelize.query(
'UPDATE devices SET is_approved = true WHERE created_at < NOW()'
);
console.log('✅ Added is_approved field to devices table');
console.log('✅ Approved all existing devices for backward compatibility');
} else {
console.log('⚠️ Column is_approved already exists, skipping...');
}
},
async down(queryInterface, Sequelize) {
// Remove index first
await queryInterface.removeIndex('devices', 'devices_is_approved_idx');
// Remove the column
await queryInterface.removeColumn('devices', 'is_approved');
console.log('✅ Removed is_approved field from devices table');
}
};