diff --git a/server/migrations/20250828000001-add-device-approval.js b/server/migrations/20250828000001-add-device-approval.js index e5ccecd..e45ccaf 100644 --- a/server/migrations/20250828000001-add-device-approval.js +++ b/server/migrations/20250828000001-add-device-approval.js @@ -7,32 +7,44 @@ 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' - }); + try { + // Check if devices table exists first + const tables = await queryInterface.showAllTables(); + if (!tables.includes('devices')) { + console.log('⚠️ Devices table does not exist yet, skipping device approval migration...'); + return; + } - // Add index for is_approved for better query performance - await queryInterface.addIndex('devices', ['is_approved'], { - name: 'devices_is_approved_idx' - }); + // 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' + }); - // Approve all existing devices by default (backward compatibility) - await queryInterface.sequelize.query( - 'UPDATE devices SET is_approved = true WHERE created_at < NOW()' - ); + // Add index for is_approved for better query performance + await queryInterface.addIndex('devices', ['is_approved'], { + name: 'devices_is_approved_idx' + }); - 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...'); + // 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...'); + } + } catch (error) { + console.log('⚠️ Migration skipped - tables may not exist yet:', error.message); + // Don't throw error, just skip this migration if tables don't exist } },