Files
drone-detector/server/migrations/20250910-add-raw-payload-fields.js
2025-09-10 06:24:57 +02:00

48 lines
1.9 KiB
JavaScript

'use strict';
module.exports = {
async up(queryInterface, Sequelize) {
// Check if raw_payload column exists in drone_detections before adding
const droneDetectionsTable = await queryInterface.describeTable('drone_detections');
if (!droneDetectionsTable.raw_payload) {
await queryInterface.addColumn('drone_detections', 'raw_payload', {
type: Sequelize.JSON,
allowNull: true,
comment: 'Complete raw payload received from detector (for debugging)'
});
console.log('✅ Added raw_payload field to drone_detections table');
} else {
console.log('⏭️ raw_payload field already exists in drone_detections table');
}
// Check if raw_payload column exists in heartbeats before adding
const heartbeatsTable = await queryInterface.describeTable('heartbeats');
if (!heartbeatsTable.raw_payload) {
await queryInterface.addColumn('heartbeats', 'raw_payload', {
type: Sequelize.JSON,
allowNull: true,
comment: 'Complete raw payload received from detector (for debugging)'
});
console.log('✅ Added raw_payload field to heartbeats table');
} else {
console.log('⏭️ raw_payload field already exists in heartbeats table');
}
},
async down(queryInterface, Sequelize) {
// Remove raw_payload column from drone_detections table
const droneDetectionsTable = await queryInterface.describeTable('drone_detections');
if (droneDetectionsTable.raw_payload) {
await queryInterface.removeColumn('drone_detections', 'raw_payload');
console.log('✅ Removed raw_payload field from drone_detections table');
}
// Remove raw_payload column from heartbeats table
const heartbeatsTable = await queryInterface.describeTable('heartbeats');
if (heartbeatsTable.raw_payload) {
await queryInterface.removeColumn('heartbeats', 'raw_payload');
console.log('✅ Removed raw_payload field from heartbeats table');
}
}
};