42 lines
1.3 KiB
JavaScript
42 lines
1.3 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) {
|
|
// 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');
|
|
},
|
|
|
|
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');
|
|
}
|
|
};
|